// Code generated by modernc.org/undup from the per-target vec_*.go files; DO NOT EDIT.

package vec

import (
	"reflect"
	"unsafe"

	"modernc.org/libc"
	libsqlite3 "modernc.org/sqlite/lib"
)

type Array = TArray

type Fts5ExtensionApi = TFts5ExtensionApi

type Fts5PhraseIter = TFts5PhraseIter

type NpyScanner = TNpyScanner

type NpyToken = TNpyToken

type TArray = struct {
	Felement_size Tsize_t
	Flength       Tsize_t
	Fcapacity     Tsize_t
	Fz            uintptr
}

type TFts5ExtensionApi = 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 TFts5PhraseIter = struct {
	Fa uintptr
	Fb uintptr
}

type TNpyScanner = struct {
	Fstart uintptr
	Fend   uintptr
	Fptr   uintptr
}

type TNpyToken = struct {
	Ftoken_type _NpyTokenType
	Fstart      uintptr
	Fend        uintptr
}

type TVec0AuxiliaryColumnDefinition = struct {
	Ftype1       int32
	Fname        uintptr
	Fname_length int32
}

type TVec0MetadataColumnDefinition = struct {
	Fkind        Tvec0_metadata_column_kind
	Fname        uintptr
	Fname_length int32
}

// a single `xxx in (...)` constraint on a metadata column. TEXT or INTEGER only for now.
type TVec0MetadataIn = struct {
	Fargv_idx     int32
	Fmetadata_idx int32
	Farray        TArray
}

// Array elements for `xxx in (...)` values for a text column. basically just a string
type TVec0MetadataInTextEntry = struct {
	Fn       int32
	FzString uintptr
}

type TVec0PartitionColumnDefinition = struct {
	Ftype1       int32
	Fname        uintptr
	Fname_length int32
}

type TVec0Scanner = struct {
	Fstart uintptr
	Fend   uintptr
	Fptr   uintptr
}

type TVec0Token = struct {
	Ftoken_type _Vec0TokenType
	Fstart      uintptr
	Fend        uintptr
}

type TVecNpyFile = struct {
	Fpath       uintptr
	FpathLength Tsize_t
}

type TVectorColumnDefinition = struct {
	Fname            uintptr
	Fname_length     int32
	Fdimensions      Tsize_t
	Felement_type    _VectorElementType
	Fdistance_metric _Vec0DistanceMetrics
}

type Tdiv_t = struct {
	Fquot int32
	Frem  int32
}

type Tdouble_t = float64

type Tf32 = float32

type Tfts5_api = struct {
	FiVersion            int32
	FxCreateTokenizer    uintptr
	FxFindTokenizer      uintptr
	FxCreateFunction     uintptr
	FxCreateTokenizer_v2 uintptr
	FxFindTokenizer_v2   uintptr
}

type Tfts5_extension_function = uintptr

type Tfts5_tokenizer = struct {
	FxCreate   uintptr
	FxDelete   uintptr
	FxTokenize uintptr
}

type Tfts5_tokenizer_v2 = struct {
	FiVersion  int32
	FxCreate   uintptr
	FxDelete   uintptr
	FxTokenize uintptr
}

type Tfvec_cleanup = uintptr

type Ti16 = int16

type Ti32 = int32

type Ti64 = int64

type Ti8 = int8

type Tint16_t = int16

type Tint32_t = int32

type Tint64_t = int64

type Tint8_t = int8

type Tint_fast32_t = int32

type Tint_fast64_t = int64

type Tint_least16_t = int16

type Tint_least32_t = int32

type Tint_least64_t = int64

type Tint_least8_t = int8

type Tintmax_t = int64

type Tsqlite3_callback = uintptr

type Tsqlite3_destructor_type = uintptr

type Tsqlite3_file = struct {
	FpMethods uintptr
}

type Tsqlite3_filename = uintptr

type Tsqlite3_index_constraint = struct {
	FiColumn     int32
	Fop          uint8
	Fusable      uint8
	FiTermOffset int32
}

type Tsqlite3_index_constraint_usage = struct {
	FargvIndex int32
	Fomit      uint8
}

type Tsqlite3_index_orderby = struct {
	FiColumn int32
	Fdesc    uint8
}

type Tsqlite3_int64 = int64

type Tsqlite3_io_methods = 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 Tsqlite3_mem_methods = struct {
	FxMalloc   uintptr
	FxFree     uintptr
	FxRealloc  uintptr
	FxSize     uintptr
	FxRoundup  uintptr
	FxInit     uintptr
	FxShutdown uintptr
	FpAppData  uintptr
}

type Tsqlite3_module = 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 Tsqlite3_mutex_methods = struct {
	FxMutexInit    uintptr
	FxMutexEnd     uintptr
	FxMutexAlloc   uintptr
	FxMutexFree    uintptr
	FxMutexEnter   uintptr
	FxMutexTry     uintptr
	FxMutexLeave   uintptr
	FxMutexHeld    uintptr
	FxMutexNotheld uintptr
}

type Tsqlite3_pcache_methods = struct {
	FpArg       uintptr
	FxInit      uintptr
	FxShutdown  uintptr
	FxCreate    uintptr
	FxCachesize uintptr
	FxPagecount uintptr
	FxFetch     uintptr
	FxUnpin     uintptr
	FxRekey     uintptr
	FxTruncate  uintptr
	FxDestroy   uintptr
}

type Tsqlite3_pcache_methods2 = 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 Tsqlite3_pcache_page = struct {
	FpBuf   uintptr
	FpExtra uintptr
}

type Tsqlite3_rtree_dbl = float64

type Tsqlite3_rtree_geometry = struct {
	FpContext uintptr
	FnParam   int32
	FaParam   uintptr
	FpUser    uintptr
	FxDelUser uintptr
}

type Tsqlite3_snapshot = struct {
	Fhidden [48]uint8
}

type Tsqlite3_syscall_ptr = uintptr

type Tsqlite3_uint64 = uint64

type Tsqlite3_vfs = 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 Tsqlite3_vtab = struct {
	FpModule uintptr
	FnRef    int32
	FzErrMsg uintptr
}

type Tsqlite3_vtab_cursor = struct {
	FpVtab uintptr
}

type Tsqlite_int64 = int64

type Tsqlite_uint64 = uint64

type Tstatic_blob = struct {
	Fname         uintptr
	Fp            uintptr
	Fdimensions   Tsize_t
	Fnvectors     Tsize_t
	Felement_type _VectorElementType
}

type Tstatic_blob_definition = struct {
	Fp            uintptr
	Fdimensions   Tsize_t
	Fnvectors     Tsize_t
	Felement_type _VectorElementType
}

type Tu32 = uint32

type Tu64 = uint64

type Tu8 = uint8

type Tuint16_t = uint16

type Tuint32_t = uint32

type Tuint64_t = uint64

type Tuint8_t = uint8

type Tuint_fast32_t = uint32

type Tuint_fast64_t = uint64

type Tuint_least16_t = uint16

type Tuint_least32_t = uint32

type Tuint_least64_t = uint64

type Tuint_least8_t = uint8

type Tuintmax_t = uint64

type Tva_list = uintptr

type Tvec0_cursor = struct {
	Fbase          Tsqlite3_vtab_cursor
	Fquery_plan    Tvec0_query_plan
	Ffullscan_data uintptr
	Fknn_data      uintptr
	Fpoint_data    uintptr
}

type Tvec0_distance_constraint_operator = int32

// C documentation
//
//	// All the different type of "values" provided to argv/argc in vec0Filter.
//	// These enums denote the use and purpose of all of them.
type Tvec0_idxstr_kind = int32

type Tvec0_metadata_column_kind = int32

type Tvec0_metadata_operator = int32

// C documentation
//
//	// The different SQLITE_INDEX_CONSTRAINT values that vec0 partition key columns
//	// support, but as characters that fit nicely in idxstr.
type Tvec0_partition_operator = int32

type Tvec0_query_fullscan_data = struct {
	Frowids_stmt uintptr
	Fdone        Ti8
}

type Tvec0_query_plan = int32

type Tvec0_user_column_kind = int32

type Tvec0_vtab = struct {
	Fbase                       Tsqlite3_vtab
	Fdb                         uintptr
	FpkIsText                   int32
	FnumVectorColumns           int32
	FnumPartitionColumns        int32
	FnumAuxiliaryColumns        int32
	FnumMetadataColumns         int32
	FschemaName                 uintptr
	FtableName                  uintptr
	FshadowRowidsName           uintptr
	FshadowChunksName           uintptr
	Fuser_column_kinds          [52]Tvec0_user_column_kind
	Fuser_column_idxs           [52]Tuint8_t
	FshadowVectorChunksNames    [16]uintptr
	FshadowMetadataChunksNames  [16]uintptr
	Fvector_columns             [16]TVectorColumnDefinition
	Fparitition_columns         [4]TVec0PartitionColumnDefinition
	Fauxiliary_columns          [16]TVec0AuxiliaryColumnDefinition
	Fmetadata_columns           [16]TVec0MetadataColumnDefinition
	Fchunk_size                 int32
	FstmtLatestChunk            uintptr
	FstmtRowidsInsertRowid      uintptr
	FstmtRowidsInsertId         uintptr
	FstmtRowidsUpdatePosition   uintptr
	FstmtRowidsGetChunkPosition uintptr
}

type Tvec_each_vtab = struct {
	Fbase Tsqlite3_vtab
}

type Tvec_npy_each_input_type = int32

type Tvec_npy_each_vtab = struct {
	Fbase Tsqlite3_vtab
}

type Tvec_sbe_query_plan = int32

type Tvec_static_blob_data = struct {
	Fstatic_blobs [16]Tstatic_blob
}

type Tvec_static_blob_entries_vtab = struct {
	Fbase Tsqlite3_vtab
	Fblob uintptr
}

type Tvec_static_blobs_vtab = struct {
	Fbase Tsqlite3_vtab
	Fdata uintptr
}

type Tvector_cleanup = uintptr

type Vec0AuxiliaryColumnDefinition = TVec0AuxiliaryColumnDefinition

type Vec0MetadataColumnDefinition = TVec0MetadataColumnDefinition

type Vec0MetadataIn = TVec0MetadataIn

type Vec0MetadataInTextEntry = TVec0MetadataInTextEntry

type Vec0PartitionColumnDefinition = TVec0PartitionColumnDefinition

type Vec0Scanner = TVec0Scanner

type Vec0Token = TVec0Token

type VecNpyFile = TVecNpyFile

type VectorColumnDefinition = TVectorColumnDefinition

func X_cmp(tls *libc.TLS, a uintptr, b uintptr) (r int32) {
	return int32(**(**Ti64)(__ccgo_up(a)) - **(**Ti64)(__ccgo_up(b)))
}

func Xfvec_cleanup_noop(tls *libc.TLS, _1 uintptr) {
	_ = _1
}

func Xmerge_sorted_lists(tls *libc.TLS, a uintptr, a_rowids uintptr, a_length Ti64, b uintptr, b_rowids uintptr, b_top_idxs uintptr, b_length Ti64, out uintptr, out_rowids uintptr, out_length Ti64, out_used uintptr) {
	var i int32
	var ptrA, ptrB Ti64
	_, _, _ = i, ptrA, ptrB
	// assert((a_length >= out_length) || (b_length >= out_length));
	ptrA = 0
	ptrB = 0
	i = 0
	for {
		if !(int64(i) < out_length) {
			break
		}
		if ptrA >= a_length && ptrB >= b_length {
			**(**Ti64)(__ccgo_up(out_used)) = int64(i)
			return
		}
		if ptrA >= a_length {
			**(**Tf32)(__ccgo_up(out + uintptr(i)*4)) = **(**Tf32)(__ccgo_up(b + uintptr(**(**Ti32)(__ccgo_up(b_top_idxs + uintptr(ptrB)*4)))*4))
			**(**Ti64)(__ccgo_up(out_rowids + uintptr(i)*8)) = **(**Ti64)(__ccgo_up(b_rowids + uintptr(**(**Ti32)(__ccgo_up(b_top_idxs + uintptr(ptrB)*4)))*8))
			ptrB = ptrB + 1
		} else {
			if ptrB >= b_length {
				**(**Tf32)(__ccgo_up(out + uintptr(i)*4)) = **(**Tf32)(__ccgo_up(a + uintptr(ptrA)*4))
				**(**Ti64)(__ccgo_up(out_rowids + uintptr(i)*8)) = **(**Ti64)(__ccgo_up(a_rowids + uintptr(ptrA)*8))
				ptrA = ptrA + 1
			} else {
				if **(**Tf32)(__ccgo_up(a + uintptr(ptrA)*4)) <= **(**Tf32)(__ccgo_up(b + uintptr(**(**Ti32)(__ccgo_up(b_top_idxs + uintptr(ptrB)*4)))*4)) {
					**(**Tf32)(__ccgo_up(out + uintptr(i)*4)) = **(**Tf32)(__ccgo_up(a + uintptr(ptrA)*4))
					**(**Ti64)(__ccgo_up(out_rowids + uintptr(i)*8)) = **(**Ti64)(__ccgo_up(a_rowids + uintptr(ptrA)*8))
					ptrA = ptrA + 1
				} else {
					**(**Tf32)(__ccgo_up(out + uintptr(i)*4)) = **(**Tf32)(__ccgo_up(b + uintptr(**(**Ti32)(__ccgo_up(b_top_idxs + uintptr(ptrB)*4)))*4))
					**(**Ti64)(__ccgo_up(out_rowids + uintptr(i)*8)) = **(**Ti64)(__ccgo_up(b_rowids + uintptr(**(**Ti32)(__ccgo_up(b_top_idxs + uintptr(ptrB)*4)))*8))
					ptrB = ptrB + 1
				}
			}
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	**(**Ti64)(__ccgo_up(out_used)) = out_length
}

// C documentation
//
//	/**
//	 * @brief Finds the minimum k items in distances, and writes the indicies to
//	 * out.
//	 *
//	 * @param distances input f32 array of size n, the items to consider.
//	 * @param n: size of distances array.
//	 * @param out: Output array of size k, will contain at most k element indicies
//	 * @param k: Size of output array
//	 * @return int
//	 */
func Xmin_idx(tls *libc.TLS, distances uintptr, n Ti32, candidates uintptr, out uintptr, k Ti32, bTaken uintptr, k_used uintptr) (r int32) {
	var i, ik, min_idx int32
	_, _, _ = i, ik, min_idx
	Xbitmap_clear(tls, bTaken, n)
	ik = 0
	for {
		if !(ik < k) {
			break
		}
		min_idx = 0
		for min_idx < n && (Xbitmap_get(tls, bTaken, min_idx) != 0 || !(Xbitmap_get(tls, candidates, min_idx) != 0)) {
			min_idx = min_idx + 1
		}
		if min_idx >= n {
			**(**Ti32)(__ccgo_up(k_used)) = ik
			return m_SQLITE_OK
		}
		i = 0
		for {
			if !(i < n) {
				break
			}
			if **(**Tf32)(__ccgo_up(distances + uintptr(i)*4)) <= **(**Tf32)(__ccgo_up(distances + uintptr(min_idx)*4)) && !(Xbitmap_get(tls, bTaken, i) != 0) && Xbitmap_get(tls, candidates, i) != 0 {
				min_idx = i
			}
			goto _2
		_2:
			;
			i = i + 1
		}
		**(**Ti32)(__ccgo_up(out + uintptr(ik)*4)) = min_idx
		Xbitmap_set(tls, bTaken, min_idx, int32(1))
		goto _1
	_1:
		;
		ik = ik + 1
	}
	**(**Ti32)(__ccgo_up(k_used)) = k
	return m_SQLITE_OK
}

func Xnpy_scanner_init(tls *libc.TLS, scanner uintptr, source uintptr, source_length int32) {
	(*TNpyScanner)(unsafe.Pointer(scanner)).Fstart = source
	(*TNpyScanner)(unsafe.Pointer(scanner)).Fend = source + uintptr(source_length)
	(*TNpyScanner)(unsafe.Pointer(scanner)).Fptr = source
}

func Xnpy_scanner_next(tls *libc.TLS, scanner uintptr, out uintptr) (r int32) {
	var rc int32
	_ = rc
	rc = Xnpy_token_next(tls, (*TNpyScanner)(unsafe.Pointer(scanner)).Fstart, (*TNpyScanner)(unsafe.Pointer(scanner)).Fend, out)
	if rc == int32(m_VEC0_TOKEN_RESULT_SOME) {
		(*TNpyScanner)(unsafe.Pointer(scanner)).Fstart = (*TNpyToken)(unsafe.Pointer(out)).Fend
	}
	return rc
}

func Xsbe_query_knn_data_clear(tls *libc.TLS, knn_data uintptr) {
	if !(knn_data != 0) {
		return
	}
	if (*Tsbe_query_knn_data)(unsafe.Pointer(knn_data)).Frowids != 0 {
		libsqlite3.Xsqlite3_free(tls, (*Tsbe_query_knn_data)(unsafe.Pointer(knn_data)).Frowids)
		(*Tsbe_query_knn_data)(unsafe.Pointer(knn_data)).Frowids = libc.UintptrFromInt32(0)
	}
	if (*Tsbe_query_knn_data)(unsafe.Pointer(knn_data)).Fdistances != 0 {
		libsqlite3.Xsqlite3_free(tls, (*Tsbe_query_knn_data)(unsafe.Pointer(knn_data)).Fdistances)
		(*Tsbe_query_knn_data)(unsafe.Pointer(knn_data)).Fdistances = libc.UintptrFromInt32(0)
	}
}

func Xtype_name(tls *libc.TLS, type1 int32) (r uintptr) {
	switch type1 {
	case int32(m_SQLITE_INTEGER):
		return __ccgo_ts + 18
	case int32(m_SQLITE_BLOB):
		return __ccgo_ts + 26
	case int32(m_SQLITE_TEXT):
		return __ccgo_ts + 31
	case int32(m_SQLITE_FLOAT):
		return __ccgo_ts + 36
	case int32(m_SQLITE_NULL):
		return __ccgo_ts + 42
	}
	return __ccgo_ts + 17
}

func Xvec0Update_Delete_DeleteAux(tls *libc.TLS, p uintptr, rowid Ti64) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var rc int32
	var zSql uintptr
	var _ /* stmt at bp+0 */ uintptr
	_, _ = rc, zSql
	**(**uintptr)(__ccgo_up(bp)) = libc.UintptrFromInt32(0)
	zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+14661, libc.VaList(bp+16, (*Tvec0_vtab)(unsafe.Pointer(p)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName))
	if !(zSql != 0) {
		return int32(m_SQLITE_NOMEM)
	}
	rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).Fdb, zSql, -int32(1), bp, libc.UintptrFromInt32(0))
	libsqlite3.Xsqlite3_free(tls, zSql)
	if rc != m_SQLITE_OK {
		goto cleanup
	}
	libsqlite3.Xsqlite3_bind_int64(tls, **(**uintptr)(__ccgo_up(bp)), int32(1), rowid)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc != int32(m_SQLITE_DONE) {
		goto cleanup
	}
	rc = m_SQLITE_OK
	goto cleanup
cleanup:
	;
	libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	return rc
}

func Xvec0Update_Delete_DeleteRowids(tls *libc.TLS, p uintptr, rowid Ti64) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var rc int32
	var zSql uintptr
	var _ /* stmt at bp+0 */ uintptr
	_, _ = rc, zSql
	**(**uintptr)(__ccgo_up(bp)) = libc.UintptrFromInt32(0)
	zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+14616, libc.VaList(bp+16, (*Tvec0_vtab)(unsafe.Pointer(p)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName))
	if !(zSql != 0) {
		return int32(m_SQLITE_NOMEM)
	}
	rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).Fdb, zSql, -int32(1), bp, libc.UintptrFromInt32(0))
	libsqlite3.Xsqlite3_free(tls, zSql)
	if rc != m_SQLITE_OK {
		goto cleanup
	}
	libsqlite3.Xsqlite3_bind_int64(tls, **(**uintptr)(__ccgo_up(bp)), int32(1), rowid)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc != int32(m_SQLITE_DONE) {
		goto cleanup
	}
	rc = m_SQLITE_OK
	goto cleanup
cleanup:
	;
	libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	return rc
}

// C documentation
//
//	/**
//	 * @brief Handles the "insert rowid" step of a row insert operation of a vec0
//	 * table.
//	 *
//	 * This function will insert a new row into the _rowids vec0 shadow table.
//	 *
//	 * @param p: virtual table
//	 * @param idValue: Value containing the inserted rowid/id value.
//	 * @param rowid: Output rowid, will point to the "real" i64 rowid
//	 * value that was inserted
//	 * @return int SQLITE_OK on success, error code on failure
//	 */
func Xvec0Update_InsertRowidStep(tls *libc.TLS, p uintptr, idValue uintptr, rowid uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var suppliedRowid Ti64
	_, _ = rc, suppliedRowid
	// Option 3: vtab has a user-defined TEXT primary key, so ensure a text value
	// is provided.
	if (*Tvec0_vtab)(unsafe.Pointer(p)).FpkIsText != 0 {
		if libsqlite3.Xsqlite3_value_type(tls, idValue) != int32(m_SQLITE_TEXT) {
			// IMP: V04200_21039
			Xvtab_set_error(tls, p, __ccgo_ts+11046, libc.VaList(bp+8, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName))
			return int32(m_SQLITE_ERROR)
		}
		return Xvec0_rowids_insert_id(tls, p, idValue, rowid)
	}
	// Option 1: User supplied a i64 rowid
	if libsqlite3.Xsqlite3_value_type(tls, idValue) == int32(m_SQLITE_INTEGER) {
		suppliedRowid = libsqlite3.Xsqlite3_value_int64(tls, idValue)
		rc = Xvec0_rowids_insert_rowid(tls, p, suppliedRowid)
		if rc == m_SQLITE_OK {
			**(**Ti64)(__ccgo_up(rowid)) = suppliedRowid
		}
		return rc
	}
	// Option 2: User did not suppled a rowid
	if libsqlite3.Xsqlite3_value_type(tls, idValue) != int32(m_SQLITE_NULL) {
		// IMP: V30855_14925
		Xvtab_set_error(tls, p, __ccgo_ts+11153, libc.VaList(bp+8, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName))
		return int32(m_SQLITE_ERROR)
	}
	// NULL to get next auto-incremented value
	return Xvec0_rowids_insert_id(tls, p, libc.UintptrFromInt32(0), rowid)
}

func Xvec0Update_UpdateAuxColumn(tls *libc.TLS, p uintptr, auxiliary_column_idx int32, value uintptr, rowid Ti64) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var rc int32
	var zSql uintptr
	var _ /* stmt at bp+0 */ uintptr
	_, _ = rc, zSql
	zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+14709, libc.VaList(bp+16, (*Tvec0_vtab)(unsafe.Pointer(p)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName, auxiliary_column_idx))
	if !(zSql != 0) {
		return int32(m_SQLITE_NOMEM)
	}
	rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).Fdb, zSql, -int32(1), bp, libc.UintptrFromInt32(0))
	if rc != m_SQLITE_OK {
		return rc
	}
	libsqlite3.Xsqlite3_bind_value(tls, **(**uintptr)(__ccgo_up(bp)), int32(1), value)
	libsqlite3.Xsqlite3_bind_int64(tls, **(**uintptr)(__ccgo_up(bp)), int32(2), rowid)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc != int32(m_SQLITE_DONE) {
		libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
		return int32(m_SQLITE_ERROR)
	}
	libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	return m_SQLITE_OK
}

// C documentation
//
//	/**
//	 * @brief Returns the index of the distance hidden column for the given vec0
//	 * table.
//	 *
//	 * @param p vec0 table
//	 * @return int
//	 */
func Xvec0_column_distance_idx(tls *libc.TLS, p uintptr) (r int32) {
	return int32(m_VEC0_COLUMN_USERN_START) + (Xvec0_num_defined_user_columns(tls, p) - int32(1)) + int32(m_VEC0_COLUMN_OFFSET_DISTANCE)
}

// C documentation
//
//	/**
//	 * @brief Returns the index of the k hidden column for the given vec0 table.
//	 *
//	 * @param p vec0 table
//	 * @return int k column index
//	 */
func Xvec0_column_k_idx(tls *libc.TLS, p uintptr) (r int32) {
	return int32(m_VEC0_COLUMN_USERN_START) + (Xvec0_num_defined_user_columns(tls, p) - int32(1)) + int32(m_VEC0_COLUMN_OFFSET_K)
}

func Xvec0_cursor_clear(tls *libc.TLS, pCur uintptr) {
	if (*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data != 0 {
		Xvec0_query_fullscan_data_clear(tls, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data)
		libsqlite3.Xsqlite3_free(tls, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data)
		(*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data != 0 {
		Xvec0_query_knn_data_clear(tls, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data)
		libsqlite3.Xsqlite3_free(tls, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data)
		(*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data != 0 {
		Xvec0_query_point_data_clear(tls, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data)
		libsqlite3.Xsqlite3_free(tls, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data)
		(*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data = libc.UintptrFromInt32(0)
	}
}

// C documentation
//
//	/**
//	 * @brief Finalize all the sqlite3_stmt members in a vec0_vtab.
//	 *
//	 * @param p vec0_vtab pointer
//	 */
func Xvec0_free_resources(tls *libc.TLS, p uintptr) {
	libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtLatestChunk)
	(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtLatestChunk = libc.UintptrFromInt32(0)
	libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertRowid)
	(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertRowid = libc.UintptrFromInt32(0)
	libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertId)
	(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertId = libc.UintptrFromInt32(0)
	libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsUpdatePosition)
	(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsUpdatePosition = libc.UintptrFromInt32(0)
	libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsGetChunkPosition)
	(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsGetChunkPosition = libc.UintptrFromInt32(0)
}

// C documentation
//
//	/**
//	 * @brief Get the value of an auxiliary column for the given rowid
//	 *
//	 * @param pVtab vec0_vtab
//	 * @param rowid the rowid of the row to lookup
//	 * @param auxiliary_idx aux index of the column we care about
//	 * @param outValue Output sqlite3_value to store
//	 * @return int SQLITE_OK on success, error code otherwise
//	 */
func Xvec0_get_auxiliary_value_for_rowid(tls *libc.TLS, pVtab uintptr, rowid Ti64, auxiliary_idx int32, outValue uintptr) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var rc int32
	var zSql uintptr
	var _ /* stmt at bp+0 */ uintptr
	_, _ = rc, zSql
	**(**uintptr)(__ccgo_up(bp)) = libc.UintptrFromInt32(0)
	zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+3995, libc.VaList(bp+16, auxiliary_idx, (*Tvec0_vtab)(unsafe.Pointer(pVtab)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(pVtab)).FtableName))
	if !(zSql != 0) {
		return int32(m_SQLITE_NOMEM)
	}
	rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(pVtab)).Fdb, zSql, -int32(1), bp, libc.UintptrFromInt32(0))
	libsqlite3.Xsqlite3_free(tls, zSql)
	if rc != m_SQLITE_OK {
		return rc
	}
	libsqlite3.Xsqlite3_bind_int64(tls, **(**uintptr)(__ccgo_up(bp)), int32(1), rowid)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc != int32(m_SQLITE_ROW) {
		rc = int32(m_SQLITE_ERROR)
		goto done
	}
	**(**uintptr)(__ccgo_up(outValue)) = libsqlite3.Xsqlite3_value_dup(tls, libsqlite3.Xsqlite3_column_value(tls, **(**uintptr)(__ccgo_up(bp)), 0))
	if !(**(**uintptr)(__ccgo_up(outValue)) != 0) {
		rc = int32(m_SQLITE_NOMEM)
		goto done
	}
	rc = m_SQLITE_OK
	goto done
done:
	;
	libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	return rc
}

// C documentation
//
//	/**
//	 * @brief Return the id value from the _rowids table where _rowids.rowid =
//	 * rowid.
//	 *
//	 * @param pVtab: vec0 table to query
//	 * @param rowid: rowid of the row to query.
//	 * @param out: A dup'ed sqlite3_value of the id column. Might be null.
//	 *                         Must be cleaned up with sqlite3_value_free().
//	 * @returns SQLITE_OK on success, error code on failure
//	 */
func Xvec0_get_id_value_from_rowid(tls *libc.TLS, pVtab uintptr, rowid Ti64, out uintptr) (r int32) {
	// PERF: different strategy than get_chunk_position?
	return Xvec0_get_chunk_position(tls, pVtab, rowid, out, libc.UintptrFromInt32(0), libc.UintptrFromInt32(0))
}

func Xvec0_get_metadata_text_long_value(tls *libc.TLS, p uintptr, stmt uintptr, metadata_idx int32, rowid Ti64, n uintptr, s uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var rc int32
	var zSql uintptr
	_, _ = rc, zSql
	if !(**(**uintptr)(__ccgo_up(stmt)) != 0) {
		zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+9462, libc.VaList(bp+8, (*Tvec0_vtab)(unsafe.Pointer(p)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName, metadata_idx))
		if !(zSql != 0) {
			rc = int32(m_SQLITE_NOMEM)
			goto done
		}
		rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).Fdb, zSql, -int32(1), stmt, libc.UintptrFromInt32(0))
		libsqlite3.Xsqlite3_free(tls, zSql)
		if rc != m_SQLITE_OK {
			goto done
		}
	}
	libsqlite3.Xsqlite3_reset(tls, **(**uintptr)(__ccgo_up(stmt)))
	libsqlite3.Xsqlite3_bind_int64(tls, **(**uintptr)(__ccgo_up(stmt)), int32(1), rowid)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(stmt)))
	if rc != int32(m_SQLITE_ROW) {
		rc = int32(m_SQLITE_ERROR)
		goto done
	}
	**(**uintptr)(__ccgo_up(s)) = libsqlite3.Xsqlite3_column_text(tls, **(**uintptr)(__ccgo_up(stmt)), 0)
	**(**int32)(__ccgo_up(n)) = libsqlite3.Xsqlite3_column_bytes(tls, **(**uintptr)(__ccgo_up(stmt)), 0)
	rc = m_SQLITE_OK
	goto done
done:
	;
	return rc
	return r
}

// C documentation
//
//	/**
//	 * @brief Retrieve the sqlite3_value of the i'th partition value for the given row.
//	 *
//	 * @param pVtab - the vec0_vtab in questions
//	 * @param rowid - rowid of target row
//	 * @param partition_idx - which partition column to retrieve
//	 * @param outValue - output sqlite3_value
//	 * @return int - SQLITE_OK on success, otherwise error code
//	 */
func Xvec0_get_partition_value_for_rowid(tls *libc.TLS, pVtab uintptr, rowid Ti64, partition_idx int32, outValue uintptr) (r int32) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var rc int32
	var zSql uintptr
	var _ /* chunk_id at bp+0 */ Ti64
	var _ /* chunk_offset at bp+8 */ Ti64
	var _ /* stmt at bp+16 */ uintptr
	_, _ = rc, zSql
	rc = Xvec0_get_chunk_position(tls, pVtab, rowid, libc.UintptrFromInt32(0), bp, bp+8)
	if rc != m_SQLITE_OK {
		return rc
	}
	**(**uintptr)(__ccgo_up(bp + 16)) = libc.UintptrFromInt32(0)
	zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+3933, libc.VaList(bp+32, partition_idx, (*Tvec0_vtab)(unsafe.Pointer(pVtab)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(pVtab)).FtableName))
	if !(zSql != 0) {
		return int32(m_SQLITE_NOMEM)
	}
	rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(pVtab)).Fdb, zSql, -int32(1), bp+16, libc.UintptrFromInt32(0))
	libsqlite3.Xsqlite3_free(tls, zSql)
	if rc != m_SQLITE_OK {
		return rc
	}
	libsqlite3.Xsqlite3_bind_int64(tls, **(**uintptr)(__ccgo_up(bp + 16)), int32(1), **(**Ti64)(__ccgo_up(bp)))
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp + 16)))
	if rc != int32(m_SQLITE_ROW) {
		rc = int32(m_SQLITE_ERROR)
		goto done
	}
	**(**uintptr)(__ccgo_up(outValue)) = libsqlite3.Xsqlite3_value_dup(tls, libsqlite3.Xsqlite3_column_value(tls, **(**uintptr)(__ccgo_up(bp + 16)), 0))
	if !(**(**uintptr)(__ccgo_up(outValue)) != 0) {
		rc = int32(m_SQLITE_NOMEM)
		goto done
	}
	rc = m_SQLITE_OK
	goto done
done:
	;
	libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp + 16)))
	return rc
}

func Xvec0_num_defined_user_columns(tls *libc.TLS, p uintptr) (r int32) {
	return (*Tvec0_vtab)(unsafe.Pointer(p)).FnumVectorColumns + (*Tvec0_vtab)(unsafe.Pointer(p)).FnumPartitionColumns + (*Tvec0_vtab)(unsafe.Pointer(p)).FnumAuxiliaryColumns + (*Tvec0_vtab)(unsafe.Pointer(p)).FnumMetadataColumns
}

func Xvec0_query_fullscan_data_clear(tls *libc.TLS, fullscan_data uintptr) {
	if !(fullscan_data != 0) {
		return
	}
	if (*Tvec0_query_fullscan_data)(unsafe.Pointer(fullscan_data)).Frowids_stmt != 0 {
		libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_query_fullscan_data)(unsafe.Pointer(fullscan_data)).Frowids_stmt)
		(*Tvec0_query_fullscan_data)(unsafe.Pointer(fullscan_data)).Frowids_stmt = libc.UintptrFromInt32(0)
	}
}

func Xvec0_query_knn_data_clear(tls *libc.TLS, knn_data uintptr) {
	if !(knn_data != 0) {
		return
	}
	if (*Tvec0_query_knn_data)(unsafe.Pointer(knn_data)).Frowids != 0 {
		libsqlite3.Xsqlite3_free(tls, (*Tvec0_query_knn_data)(unsafe.Pointer(knn_data)).Frowids)
		(*Tvec0_query_knn_data)(unsafe.Pointer(knn_data)).Frowids = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_query_knn_data)(unsafe.Pointer(knn_data)).Fdistances != 0 {
		libsqlite3.Xsqlite3_free(tls, (*Tvec0_query_knn_data)(unsafe.Pointer(knn_data)).Fdistances)
		(*Tvec0_query_knn_data)(unsafe.Pointer(knn_data)).Fdistances = libc.UintptrFromInt32(0)
	}
}

func Xvec0_result_id(tls *libc.TLS, p uintptr, context uintptr, rowid Ti64) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* valueId at bp+0 */ uintptr
	_ = rc
	if !((*Tvec0_vtab)(unsafe.Pointer(p)).FpkIsText != 0) {
		libsqlite3.Xsqlite3_result_int64(tls, context, rowid)
		return m_SQLITE_OK
	}
	rc = Xvec0_get_id_value_from_rowid(tls, p, rowid, bp)
	if rc != m_SQLITE_OK {
		return rc
	}
	if !(**(**uintptr)(__ccgo_up(bp)) != 0) {
		libsqlite3.Xsqlite3_result_error_nomem(tls, context)
	} else {
		libsqlite3.Xsqlite3_result_value(tls, context, **(**uintptr)(__ccgo_up(bp)))
		libsqlite3.Xsqlite3_value_free(tls, **(**uintptr)(__ccgo_up(bp)))
	}
	return m_SQLITE_OK
}

func Xvec0_rowid_from_id(tls *libc.TLS, p uintptr, valueId uintptr, rowid uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var rc int32
	var zSql uintptr
	var _ /* stmt at bp+0 */ uintptr
	_, _ = rc, zSql
	**(**uintptr)(__ccgo_up(bp)) = libc.UintptrFromInt32(0)
	zSql = libsqlite3.Xsqlite3_mprintf(tls, __ccgo_ts+3627, libc.VaList(bp+16, (*Tvec0_vtab)(unsafe.Pointer(p)).FschemaName, (*Tvec0_vtab)(unsafe.Pointer(p)).FtableName))
	if !(zSql != 0) {
		rc = int32(m_SQLITE_NOMEM)
		goto cleanup
	}
	rc = libsqlite3.Xsqlite3_prepare_v2(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).Fdb, zSql, -int32(1), bp, libc.UintptrFromInt32(0))
	libsqlite3.Xsqlite3_free(tls, zSql)
	if rc != m_SQLITE_OK {
		goto cleanup
	}
	libsqlite3.Xsqlite3_bind_value(tls, **(**uintptr)(__ccgo_up(bp)), int32(1), valueId)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc == int32(m_SQLITE_DONE) {
		rc = int32(m_SQLITE_EMPTY)
		goto cleanup
	}
	if rc != int32(m_SQLITE_ROW) {
		goto cleanup
	}
	**(**Ti64)(__ccgo_up(rowid)) = libsqlite3.Xsqlite3_column_int64(tls, **(**uintptr)(__ccgo_up(bp)), 0)
	rc = libsqlite3.Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc != int32(m_SQLITE_DONE) {
		goto cleanup
	}
	rc = m_SQLITE_OK
	goto cleanup
cleanup:
	;
	libsqlite3.Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	return rc
}

func Xvec0_scanner_init(tls *libc.TLS, scanner uintptr, source uintptr, source_length int32) {
	(*TVec0Scanner)(unsafe.Pointer(scanner)).Fstart = source
	(*TVec0Scanner)(unsafe.Pointer(scanner)).Fend = source + uintptr(source_length)
	(*TVec0Scanner)(unsafe.Pointer(scanner)).Fptr = source
}

func Xvec0_scanner_next(tls *libc.TLS, scanner uintptr, out uintptr) (r int32) {
	var rc int32
	_ = rc
	rc = Xvec0_token_next(tls, (*TVec0Scanner)(unsafe.Pointer(scanner)).Fstart, (*TVec0Scanner)(unsafe.Pointer(scanner)).Fend, out)
	if rc == int32(m_VEC0_TOKEN_RESULT_SOME) {
		(*TVec0Scanner)(unsafe.Pointer(scanner)).Fstart = (*TVec0Token)(unsafe.Pointer(out)).Fend
	}
	return rc
}

func Xvec_type_name(tls *libc.TLS, elementType _VectorElementType) (r uintptr) {
	switch elementType {
	case int32(_SQLITE_VEC_ELEMENT_TYPE_FLOAT32):
		return __ccgo_ts
	case int32(_SQLITE_VEC_ELEMENT_TYPE_INT8):
		return __ccgo_ts + 8
	case int32(_SQLITE_VEC_ELEMENT_TYPE_BIT):
		return __ccgo_ts + 13
	}
	return __ccgo_ts + 17
}

func Xvector_cleanup_noop(tls *libc.TLS, _1 uintptr) {
	_ = _1
}

func Xvector_column_byte_size(tls *libc.TLS, column TVectorColumnDefinition) (r Tsize_t) {
	return Xvector_byte_size(tls, column.Felement_type, column.Fdimensions)
}

func Xvector_subtype_name(tls *libc.TLS, subtype int32) (r uintptr) {
	switch subtype {
	case int32(_SQLITE_VEC_ELEMENT_TYPE_FLOAT32):
		return __ccgo_ts
	case int32(_SQLITE_VEC_ELEMENT_TYPE_INT8):
		return __ccgo_ts + 8
	case int32(_SQLITE_VEC_ELEMENT_TYPE_BIT):
		return __ccgo_ts + 13
	}
	return __ccgo_ts + 17
}

func Xvtab_set_error(tls *libc.TLS, pVTab uintptr, zFormat uintptr, va uintptr) {
	var args Tva_list
	_ = args
	libsqlite3.Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg)
	args = va
	(*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = libsqlite3.Xsqlite3_vmprintf(tls, zFormat, args)
	_ = args
}

var _NPY_MAGIC = [6]uint8{147, 'N', 'U', 'M', 'P', 'Y'}

const _NPY_TOKEN_TYPE_COLON = 6

const _NPY_TOKEN_TYPE_COMMA = 7

const _NPY_TOKEN_TYPE_FALSE = 9

const _NPY_TOKEN_TYPE_IDENTIFIER = 0

const _NPY_TOKEN_TYPE_LBRACE = 4

const _NPY_TOKEN_TYPE_LPAREN = 2

const _NPY_TOKEN_TYPE_NUMBER = 1

const _NPY_TOKEN_TYPE_RBRACE = 5

const _NPY_TOKEN_TYPE_RPAREN = 3

const _NPY_TOKEN_TYPE_STRING = 8

type _NpyTokenType = int32

var _POINTER_NAME_STATIC_BLOB_DEF = __ccgo_ts + 15872

const _SQLITE_VEC0_USER_COLUMN_KIND_AUXILIARY = 3

const

// metadata column that can be filtered, ie "genre text"
_SQLITE_VEC0_USER_COLUMN_KIND_METADATA = 4

const

// partition key column, ie "user_id integer partition key"
_SQLITE_VEC0_USER_COLUMN_KIND_PARTITION = 2

const
// vector column, ie "contents_embedding float[1024]"
_SQLITE_VEC0_USER_COLUMN_KIND_VECTOR = 1

const _SQLITE_VEC_ELEMENT_TYPE_BIT = 224

const
// clang-format off
_SQLITE_VEC_ELEMENT_TYPE_FLOAT32 = 223

const _SQLITE_VEC_ELEMENT_TYPE_INT8 = 225

const _TOKEN_TYPE_COMMA = 8

const _TOKEN_TYPE_DIGIT = 1

const _TOKEN_TYPE_EQ = 5

const _TOKEN_TYPE_IDENTIFIER = 0

const _TOKEN_TYPE_LBRACKET = 2

const _TOKEN_TYPE_LPAREN = 6

const _TOKEN_TYPE_PLUS = 4

const _TOKEN_TYPE_RBRACKET = 3

const _TOKEN_TYPE_RPAREN = 7

const _VEC0_DISTANCE_CONSTRAINT_GE = 98

const _VEC0_DISTANCE_CONSTRAINT_GT = 97

const _VEC0_DISTANCE_CONSTRAINT_LE = 100

const _VEC0_DISTANCE_CONSTRAINT_LT = 99

const _VEC0_DISTANCE_METRIC_COSINE = 2

const _VEC0_DISTANCE_METRIC_L1 = 3

const _VEC0_DISTANCE_METRIC_L2 = 1

const

// argv[i] is a constraint on the distance column in a KNN query
_VEC0_IDXSTR_KIND_KNN_DISTANCE_CONSTRAINT = 42

const _VEC0_IDXSTR_KIND_KNN_K = 125

const
// If any values are updated, please update the ARCHITECTURE.md docs accordingly!

// ~~~ KNN QUERIES ~~~ //
_VEC0_IDXSTR_KIND_KNN_MATCH = 123

const
// argv[i] is a constraint on a PARTITON KEY column in a KNN query
_VEC0_IDXSTR_KIND_KNN_PARTITON_CONSTRAINT = 93

const _VEC0_IDXSTR_KIND_KNN_ROWID_IN = 91

const

// ~~~ ??? ~~~ //
_VEC0_IDXSTR_KIND_METADATA_CONSTRAINT = 38

const

// ~~~ POINT QUERIES ~~~ //
_VEC0_IDXSTR_KIND_POINT_ID = 33

const _VEC0_METADATA_COLUMN_KIND_BOOLEAN = 0

const _VEC0_METADATA_COLUMN_KIND_FLOAT = 2

const _VEC0_METADATA_COLUMN_KIND_INTEGER = 1

const _VEC0_METADATA_COLUMN_KIND_TEXT = 3

const _VEC0_METADATA_OPERATOR_EQ = 97

const _VEC0_METADATA_OPERATOR_GE = 101

const _VEC0_METADATA_OPERATOR_GT = 98

const _VEC0_METADATA_OPERATOR_IN = 103

const _VEC0_METADATA_OPERATOR_LE = 99

const _VEC0_METADATA_OPERATOR_LT = 100

const _VEC0_METADATA_OPERATOR_NE = 102

const
// If any values are updated, please update the ARCHITECTURE.md docs accordingly!

// Equality constraint on a PARTITON KEY column, ex `user_id = 123`
_VEC0_PARTITION_OPERATOR_EQ = 97

const

// "Greater than or equal to" constraint on a PARTITON KEY column, ex `year >= 2024`
_VEC0_PARTITION_OPERATOR_GE = 101

const

// "Greater than" constraint on a PARTITON KEY column, ex `year > 2024`
_VEC0_PARTITION_OPERATOR_GT = 98

const

// "Less than or equal to" constraint on a PARTITON KEY column, ex `year <= 2024`
_VEC0_PARTITION_OPERATOR_LE = 99

const

// "Less than" constraint on a PARTITON KEY column, ex `year < 2024`
_VEC0_PARTITION_OPERATOR_LT = 100

const

// "Not equal to" constraint on a PARTITON KEY column, ex `year != 2024`
_VEC0_PARTITION_OPERATOR_NE = 102

const
// If any values are updated, please update the ARCHITECTURE.md docs accordingly!

_VEC0_QUERY_PLAN_FULLSCAN = 49

const _VEC0_QUERY_PLAN_KNN = 51

const _VEC0_QUERY_PLAN_POINT = 50

const _VEC_NPY_EACH_INPUT_BUFFER = 0

const _VEC_NPY_EACH_INPUT_FILE = 1

const _VEC_SBE__QUERYPLAN_FULLSCAN = 1

const _VEC_SBE__QUERYPLAN_KNN = 2

type _Vec0DistanceMetrics = int32

type _Vec0TokenType = int32

type _VectorElementType = int32

func __ccgo_fp(f interface{}) uintptr {
	type iface [2]uintptr
	return (*iface)(unsafe.Pointer(&f))[1]
}

var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data

func __ccgo_up(n uintptr) unsafe.Pointer {
	return unsafe.Pointer(&n)
}

func __static_text_func(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	_ = argc
	_ = argv
	libsqlite3.Xsqlite3_result_text(tls, context, libsqlite3.Xsqlite3_user_data(tls, context), -int32(1), libc.UintptrFromInt32(0))
}

var _azName = [36]uintptr{
	0:  __ccgo_ts + 9690,
	1:  __ccgo_ts + 15338,
	2:  __ccgo_ts + 15345,
	3:  __ccgo_ts + 15355,
	4:  __ccgo_ts + 15360,
	5:  __ccgo_ts + 15377,
	6:  __ccgo_ts + 15394,
	7:  __ccgo_ts + 15411,
	8:  __ccgo_ts + 15428,
	9:  __ccgo_ts + 15445,
	10: __ccgo_ts + 15462,
	11: __ccgo_ts + 15479,
	12: __ccgo_ts + 15496,
	13: __ccgo_ts + 15513,
	14: __ccgo_ts + 15530,
	15: __ccgo_ts + 15547,
	16: __ccgo_ts + 15564,
	17: __ccgo_ts + 15581,
	18: __ccgo_ts + 15598,
	19: __ccgo_ts + 15615,
	20: __ccgo_ts + 15632,
	21: __ccgo_ts + 15647,
	22: __ccgo_ts + 15662,
	23: __ccgo_ts + 15677,
	24: __ccgo_ts + 15692,
	25: __ccgo_ts + 15707,
	26: __ccgo_ts + 15722,
	27: __ccgo_ts + 15737,
	28: __ccgo_ts + 15752,
	29: __ccgo_ts + 15767,
	30: __ccgo_ts + 15782,
	31: __ccgo_ts + 15797,
	32: __ccgo_ts + 15812,
	33: __ccgo_ts + 15827,
	34: __ccgo_ts + 15842,
	35: __ccgo_ts + 15857,
}

func _distance_l1_f32(tls *libc.TLS, a uintptr, b uintptr, d uintptr) (r float64) {
	return _l1_f32(tls, a, b, d)
}

func _distance_l1_int8(tls *libc.TLS, a uintptr, b uintptr, d uintptr) (r Ti32) {
	return _l1_int8(tls, a, b, d)
}

func _distance_l2_sqr_float(tls *libc.TLS, a uintptr, b uintptr, d uintptr) (r Tf32) {
	return _l2_sqr_float(tls, a, b, d)
}

func _distance_l2_sqr_int8(tls *libc.TLS, a uintptr, b uintptr, d uintptr) (r Tf32) {
	return _l2_sqr_int8(tls, a, b, d)
}

// C documentation
//
//	// https://github.com/facebookresearch/faiss/blob/77e2e79cd0a680adc343b9840dd865da724c579e/faiss/utils/hamming_distance/common.h#L34
var _hamdist_table = [256]Tu8{
	1:   uint8(1),
	2:   uint8(1),
	3:   uint8(2),
	4:   uint8(1),
	5:   uint8(2),
	6:   uint8(2),
	7:   uint8(3),
	8:   uint8(1),
	9:   uint8(2),
	10:  uint8(2),
	11:  uint8(3),
	12:  uint8(2),
	13:  uint8(3),
	14:  uint8(3),
	15:  uint8(4),
	16:  uint8(1),
	17:  uint8(2),
	18:  uint8(2),
	19:  uint8(3),
	20:  uint8(2),
	21:  uint8(3),
	22:  uint8(3),
	23:  uint8(4),
	24:  uint8(2),
	25:  uint8(3),
	26:  uint8(3),
	27:  uint8(4),
	28:  uint8(3),
	29:  uint8(4),
	30:  uint8(4),
	31:  uint8(5),
	32:  uint8(1),
	33:  uint8(2),
	34:  uint8(2),
	35:  uint8(3),
	36:  uint8(2),
	37:  uint8(3),
	38:  uint8(3),
	39:  uint8(4),
	40:  uint8(2),
	41:  uint8(3),
	42:  uint8(3),
	43:  uint8(4),
	44:  uint8(3),
	45:  uint8(4),
	46:  uint8(4),
	47:  uint8(5),
	48:  uint8(2),
	49:  uint8(3),
	50:  uint8(3),
	51:  uint8(4),
	52:  uint8(3),
	53:  uint8(4),
	54:  uint8(4),
	55:  uint8(5),
	56:  uint8(3),
	57:  uint8(4),
	58:  uint8(4),
	59:  uint8(5),
	60:  uint8(4),
	61:  uint8(5),
	62:  uint8(5),
	63:  uint8(6),
	64:  uint8(1),
	65:  uint8(2),
	66:  uint8(2),
	67:  uint8(3),
	68:  uint8(2),
	69:  uint8(3),
	70:  uint8(3),
	71:  uint8(4),
	72:  uint8(2),
	73:  uint8(3),
	74:  uint8(3),
	75:  uint8(4),
	76:  uint8(3),
	77:  uint8(4),
	78:  uint8(4),
	79:  uint8(5),
	80:  uint8(2),
	81:  uint8(3),
	82:  uint8(3),
	83:  uint8(4),
	84:  uint8(3),
	85:  uint8(4),
	86:  uint8(4),
	87:  uint8(5),
	88:  uint8(3),
	89:  uint8(4),
	90:  uint8(4),
	91:  uint8(5),
	92:  uint8(4),
	93:  uint8(5),
	94:  uint8(5),
	95:  uint8(6),
	96:  uint8(2),
	97:  uint8(3),
	98:  uint8(3),
	99:  uint8(4),
	100: uint8(3),
	101: uint8(4),
	102: uint8(4),
	103: uint8(5),
	104: uint8(3),
	105: uint8(4),
	106: uint8(4),
	107: uint8(5),
	108: uint8(4),
	109: uint8(5),
	110: uint8(5),
	111: uint8(6),
	112: uint8(3),
	113: uint8(4),
	114: uint8(4),
	115: uint8(5),
	116: uint8(4),
	117: uint8(5),
	118: uint8(5),
	119: uint8(6),
	120: uint8(4),
	121: uint8(5),
	122: uint8(5),
	123: uint8(6),
	124: uint8(5),
	125: uint8(6),
	126: uint8(6),
	127: uint8(7),
	128: uint8(1),
	129: uint8(2),
	130: uint8(2),
	131: uint8(3),
	132: uint8(2),
	133: uint8(3),
	134: uint8(3),
	135: uint8(4),
	136: uint8(2),
	137: uint8(3),
	138: uint8(3),
	139: uint8(4),
	140: uint8(3),
	141: uint8(4),
	142: uint8(4),
	143: uint8(5),
	144: uint8(2),
	145: uint8(3),
	146: uint8(3),
	147: uint8(4),
	148: uint8(3),
	149: uint8(4),
	150: uint8(4),
	151: uint8(5),
	152: uint8(3),
	153: uint8(4),
	154: uint8(4),
	155: uint8(5),
	156: uint8(4),
	157: uint8(5),
	158: uint8(5),
	159: uint8(6),
	160: uint8(2),
	161: uint8(3),
	162: uint8(3),
	163: uint8(4),
	164: uint8(3),
	165: uint8(4),
	166: uint8(4),
	167: uint8(5),
	168: uint8(3),
	169: uint8(4),
	170: uint8(4),
	171: uint8(5),
	172: uint8(4),
	173: uint8(5),
	174: uint8(5),
	175: uint8(6),
	176: uint8(3),
	177: uint8(4),
	178: uint8(4),
	179: uint8(5),
	180: uint8(4),
	181: uint8(5),
	182: uint8(5),
	183: uint8(6),
	184: uint8(4),
	185: uint8(5),
	186: uint8(5),
	187: uint8(6),
	188: uint8(5),
	189: uint8(6),
	190: uint8(6),
	191: uint8(7),
	192: uint8(2),
	193: uint8(3),
	194: uint8(3),
	195: uint8(4),
	196: uint8(3),
	197: uint8(4),
	198: uint8(4),
	199: uint8(5),
	200: uint8(3),
	201: uint8(4),
	202: uint8(4),
	203: uint8(5),
	204: uint8(4),
	205: uint8(5),
	206: uint8(5),
	207: uint8(6),
	208: uint8(3),
	209: uint8(4),
	210: uint8(4),
	211: uint8(5),
	212: uint8(4),
	213: uint8(5),
	214: uint8(5),
	215: uint8(6),
	216: uint8(4),
	217: uint8(5),
	218: uint8(5),
	219: uint8(6),
	220: uint8(5),
	221: uint8(6),
	222: uint8(6),
	223: uint8(7),
	224: uint8(3),
	225: uint8(4),
	226: uint8(4),
	227: uint8(5),
	228: uint8(4),
	229: uint8(5),
	230: uint8(5),
	231: uint8(6),
	232: uint8(4),
	233: uint8(5),
	234: uint8(5),
	235: uint8(6),
	236: uint8(5),
	237: uint8(6),
	238: uint8(6),
	239: uint8(7),
	240: uint8(4),
	241: uint8(5),
	242: uint8(5),
	243: uint8(6),
	244: uint8(5),
	245: uint8(6),
	246: uint8(6),
	247: uint8(7),
	248: uint8(5),
	249: uint8(6),
	250: uint8(6),
	251: uint8(7),
	252: uint8(6),
	253: uint8(7),
	254: uint8(7),
	255: uint8(8),
}

func _vec0Begin(tls *libc.TLS, pVTab uintptr) (r int32) {
	_ = pVTab
	return m_SQLITE_OK
}

func _vec0Close(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	Xvec0_cursor_clear(tls, pCur)
	libsqlite3.Xsqlite3_free(tls, pCur)
	return m_SQLITE_OK
}

func _vec0Column(tls *libc.TLS, cur uintptr, context uintptr, i int32) (r int32) {
	var pCur, pVtab uintptr
	_, _ = pCur, pVtab
	pCur = cur
	pVtab = (*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
	switch (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fquery_plan {
	case int32(_VEC0_QUERY_PLAN_FULLSCAN):
		return _vec0Column_fullscan(tls, pVtab, pCur, context, i)
	case int32(_VEC0_QUERY_PLAN_KNN):
		return _vec0Column_knn(tls, pVtab, pCur, context, i)
	case int32(_VEC0_QUERY_PLAN_POINT):
		return _vec0Column_point(tls, pVtab, pCur, context, i)
	}
	return m_SQLITE_OK
}

func _vec0Commit(tls *libc.TLS, pVTab uintptr) (r int32) {
	_ = pVTab
	return m_SQLITE_OK
}

func _vec0Connect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) (r int32) {
	return _vec0_init(tls, db, pAux, argc, argv, ppVtab, pzErr, libc.BoolUint8(m_false != 0))
}

func _vec0Create(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) (r int32) {
	return _vec0_init(tls, db, pAux, argc, argv, ppVtab, pzErr, libc.BoolUint8(m_true != 0))
}

func _vec0Disconnect(tls *libc.TLS, pVtab uintptr) (r int32) {
	var p uintptr
	_ = p
	p = pVtab
	Xvec0_free(tls, p)
	libsqlite3.Xsqlite3_free(tls, p)
	return m_SQLITE_OK
}

func _vec0Eof(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	switch (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fquery_plan {
	case int32(_VEC0_QUERY_PLAN_FULLSCAN):
		if !((*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data != 0) {
			return int32(1)
		}
		return int32((*Tvec0_query_fullscan_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data)).Fdone)
	case int32(_VEC0_QUERY_PLAN_KNN):
		if !((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data != 0) {
			return int32(1)
		}
		// return (pCur->knn_data->current_idx >= pCur->knn_data->k) ||
		// (pCur->knn_data->distances[pCur->knn_data->current_idx] == FLT_MAX);
		return libc.BoolInt32((*Tvec0_query_knn_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fcurrent_idx >= (*Tvec0_query_knn_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fk_used)
	case int32(_VEC0_QUERY_PLAN_POINT):
		if !((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data != 0) {
			return int32(1)
		}
		return (*Tvec0_query_point_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data)).Fdone
	}
	return int32(1)
}

var _vec0Module = Tsqlite3_module{
	FiVersion: int32(3),
}

func _vec0Next(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	var rc int32
	_, _ = pCur, rc
	pCur = cur
	switch (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fquery_plan {
	case int32(_VEC0_QUERY_PLAN_FULLSCAN):
		if !((*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data != 0) {
			return int32(m_SQLITE_ERROR)
		}
		rc = libsqlite3.Xsqlite3_step(tls, (*Tvec0_query_fullscan_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data)).Frowids_stmt)
		if rc == int32(m_SQLITE_DONE) {
			(*Tvec0_query_fullscan_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data)).Fdone = int8(1)
			return m_SQLITE_OK
		}
		if rc == int32(m_SQLITE_ROW) {
			return m_SQLITE_OK
		}
		return int32(m_SQLITE_ERROR)
	case int32(_VEC0_QUERY_PLAN_KNN):
		if !((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data != 0) {
			return int32(m_SQLITE_ERROR)
		}
		(*Tvec0_query_knn_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fcurrent_idx = (*Tvec0_query_knn_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fcurrent_idx + 1
		return m_SQLITE_OK
	case int32(_VEC0_QUERY_PLAN_POINT):
		if !((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data != 0) {
			return int32(m_SQLITE_ERROR)
		}
		(*Tvec0_query_point_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data)).Fdone = int32(1)
		return m_SQLITE_OK
	}
	return int32(m_SQLITE_ERROR)
}

func _vec0Rollback(tls *libc.TLS, pVTab uintptr) (r int32) {
	_ = pVTab
	return m_SQLITE_OK
}

func _vec0Rowid(tls *libc.TLS, cur uintptr, pRowid uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var pCur uintptr
	_ = pCur
	pCur = cur
	switch (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fquery_plan {
	case int32(_VEC0_QUERY_PLAN_FULLSCAN):
		**(**Tsqlite_int64)(__ccgo_up(pRowid)) = libsqlite3.Xsqlite3_column_int64(tls, (*Tvec0_query_fullscan_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Ffullscan_data)).Frowids_stmt, 0)
		return m_SQLITE_OK
	case int32(_VEC0_QUERY_PLAN_POINT):
		**(**Tsqlite_int64)(__ccgo_up(pRowid)) = (*Tvec0_query_point_data)(unsafe.Pointer((*Tvec0_cursor)(unsafe.Pointer(pCur)).Fpoint_data)).Frowid
		return m_SQLITE_OK
	case int32(_VEC0_QUERY_PLAN_KNN):
		Xvtab_set_error(tls, (*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab, __ccgo_ts+10765, libc.VaList(bp+8, (*Tvec0_cursor)(unsafe.Pointer(pCur)).Fquery_plan))
		return int32(m_SQLITE_ERROR)
	}
	return int32(m_SQLITE_ERROR)
}

func _vec0Sync(tls *libc.TLS, pVTab uintptr) (r int32) {
	var p uintptr
	_ = p
	_ = pVTab
	p = pVTab
	if (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtLatestChunk != 0 {
		libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtLatestChunk)
		(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtLatestChunk = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertRowid != 0 {
		libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertRowid)
		(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertRowid = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertId != 0 {
		libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertId)
		(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsInsertId = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsUpdatePosition != 0 {
		libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsUpdatePosition)
		(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsUpdatePosition = libc.UintptrFromInt32(0)
	}
	if (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsGetChunkPosition != 0 {
		libsqlite3.Xsqlite3_finalize(tls, (*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsGetChunkPosition)
		(*Tvec0_vtab)(unsafe.Pointer(p)).FstmtRowidsGetChunkPosition = libc.UintptrFromInt32(0)
	}
	return m_SQLITE_OK
}

func _vec0Update(tls *libc.TLS, pVTab uintptr, argc int32, argv uintptr, pRowid uintptr) (r int32) {
	// DELETE operation
	if argc == int32(1) && libsqlite3.Xsqlite3_value_type(tls, **(**uintptr)(__ccgo_up(argv))) != int32(m_SQLITE_NULL) {
		return Xvec0Update_Delete(tls, pVTab, **(**uintptr)(__ccgo_up(argv)))
	} else {
		if argc > int32(1) && libsqlite3.Xsqlite3_value_type(tls, **(**uintptr)(__ccgo_up(argv))) == int32(m_SQLITE_NULL) {
			return Xvec0Update_Insert(tls, pVTab, argc, argv, pRowid)
		} else {
			if argc > int32(1) && libsqlite3.Xsqlite3_value_type(tls, **(**uintptr)(__ccgo_up(argv))) != int32(m_SQLITE_NULL) {
				return Xvec0Update_Update(tls, pVTab, argc, argv)
			} else {
				Xvtab_set_error(tls, pVTab, __ccgo_ts+15288, 0)
				return int32(m_SQLITE_ERROR)
			}
		}
	}
	return r
}

func _vec_eachClose(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	if (*Tvec_each_cursor)(unsafe.Pointer(pCur)).Fvector != 0 {
		(*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tvec_each_cursor)(unsafe.Pointer(pCur)).Fcleanup})))(tls, (*Tvec_each_cursor)(unsafe.Pointer(pCur)).Fvector)
	}
	libsqlite3.Xsqlite3_free(tls, pCur)
	return m_SQLITE_OK
}

func _vec_eachDisconnect(tls *libc.TLS, pVtab uintptr) (r int32) {
	var p uintptr
	_ = p
	p = pVtab
	libsqlite3.Xsqlite3_free(tls, p)
	return m_SQLITE_OK
}

var _vec_eachModule = Tsqlite3_module{}

func _vec_eachNext(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	(*Tvec_each_cursor)(unsafe.Pointer(pCur)).FiRowid = (*Tvec_each_cursor)(unsafe.Pointer(pCur)).FiRowid + 1
	return m_SQLITE_OK
}

func _vec_eachRowid(tls *libc.TLS, cur uintptr, pRowid uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	**(**Tsqlite_int64)(__ccgo_up(pRowid)) = (*Tvec_each_cursor)(unsafe.Pointer(pCur)).FiRowid
	return m_SQLITE_OK
}

func _vec_npy_eachClose(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	if (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).Ffile != 0 {
		libc.Xfclose(tls, (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).Ffile)
		(*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).Ffile = libc.UintptrFromInt32(0)
	}
	if (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).FchunksBuffer != 0 {
		libsqlite3.Xsqlite3_free(tls, (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).FchunksBuffer)
		(*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).FchunksBuffer = libc.UintptrFromInt32(0)
	}
	if (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).Fvector != 0 {
		(*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).Fvector = libc.UintptrFromInt32(0)
	}
	libsqlite3.Xsqlite3_free(tls, pCur)
	return m_SQLITE_OK
}

func _vec_npy_eachColumn(tls *libc.TLS, cur uintptr, context uintptr, i int32) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	switch (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).Finput_type {
	case int32(_VEC_NPY_EACH_INPUT_BUFFER):
		return _vec_npy_eachColumnBuffer(tls, pCur, context, i)
	case int32(_VEC_NPY_EACH_INPUT_FILE):
		return _vec_npy_eachColumnFile(tls, pCur, context, i)
	}
	return int32(m_SQLITE_ERROR)
}

func _vec_npy_eachDisconnect(tls *libc.TLS, pVtab uintptr) (r int32) {
	var p uintptr
	_ = p
	p = pVtab
	libsqlite3.Xsqlite3_free(tls, p)
	return m_SQLITE_OK
}

var _vec_npy_eachModule = Tsqlite3_module{}

func _vec_npy_eachRowid(tls *libc.TLS, cur uintptr, pRowid uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	**(**Tsqlite_int64)(__ccgo_up(pRowid)) = (*Tvec_npy_each_cursor)(unsafe.Pointer(pCur)).FiRowid
	return m_SQLITE_OK
}

func _vec_static_blob_entriesClose(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	libsqlite3.Xsqlite3_free(tls, (*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fknn_data)
	libsqlite3.Xsqlite3_free(tls, pCur)
	return m_SQLITE_OK
}

func _vec_static_blob_entriesCreate(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) (r int32) {
	return _vec_static_blob_entriesConnect(tls, db, pAux, argc, argv, ppVtab, pzErr)
}

func _vec_static_blob_entriesDisconnect(tls *libc.TLS, pVtab uintptr) (r int32) {
	var p uintptr
	_ = p
	p = pVtab
	libsqlite3.Xsqlite3_free(tls, p)
	return m_SQLITE_OK
}

var _vec_static_blob_entriesModule = Tsqlite3_module{
	FiVersion: int32(3),
}

func _vec_static_blob_entriesNext(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	switch (*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fquery_plan {
	case int32(_VEC_SBE__QUERYPLAN_FULLSCAN):
		(*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).FiRowid = (*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).FiRowid + 1
		return m_SQLITE_OK
	case int32(_VEC_SBE__QUERYPLAN_KNN):
		(*Tsbe_query_knn_data)(unsafe.Pointer((*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fcurrent_idx = (*Tsbe_query_knn_data)(unsafe.Pointer((*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fcurrent_idx + 1
		return m_SQLITE_OK
	}
	return int32(m_SQLITE_ERROR)
}

func _vec_static_blob_entriesRowid(tls *libc.TLS, cur uintptr, pRowid uintptr) (r int32) {
	var pCur uintptr
	var rowid Ti32
	_, _ = pCur, rowid
	pCur = cur
	switch (*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fquery_plan {
	case int32(_VEC_SBE__QUERYPLAN_FULLSCAN):
		**(**Tsqlite_int64)(__ccgo_up(pRowid)) = (*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).FiRowid
		return m_SQLITE_OK
	case int32(_VEC_SBE__QUERYPLAN_KNN):
		rowid = **(**Ti32)(__ccgo_up((*Tsbe_query_knn_data)(unsafe.Pointer((*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Frowids + uintptr((*Tsbe_query_knn_data)(unsafe.Pointer((*Tvec_static_blob_entries_cursor)(unsafe.Pointer(pCur)).Fknn_data)).Fcurrent_idx)*4))
		**(**Tsqlite_int64)(__ccgo_up(pRowid)) = int64(rowid)
		return m_SQLITE_OK
	}
	return int32(m_SQLITE_ERROR)
}

func _vec_static_blobsBestIndex(tls *libc.TLS, pVTab uintptr, pIdxInfo uintptr) (r int32) {
	_ = pVTab
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1)
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(10)
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(10)
	return m_SQLITE_OK
}

func _vec_static_blobsClose(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	libsqlite3.Xsqlite3_free(tls, pCur)
	return m_SQLITE_OK
}

func _vec_static_blobsDisconnect(tls *libc.TLS, pVtab uintptr) (r int32) {
	var p uintptr
	_ = p
	p = pVtab
	libsqlite3.Xsqlite3_free(tls, p)
	return m_SQLITE_OK
}

func _vec_static_blobsEof(tls *libc.TLS, cur uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	return libc.BoolInt32((*Tvec_static_blobs_cursor)(unsafe.Pointer(pCur)).FiRowid >= int64(m_MAX_STATIC_BLOBS))
}

func _vec_static_blobsFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	_ = idxNum
	_ = idxStr
	_ = argc
	_ = argv
	pCur = pVtabCursor
	(*Tvec_static_blobs_cursor)(unsafe.Pointer(pCur)).FiRowid = int64(-int32(1))
	_vec_static_blobsNext(tls, pVtabCursor)
	return m_SQLITE_OK
}

var _vec_static_blobsModule = Tsqlite3_module{
	FiVersion: int32(3),
}

func _vec_static_blobsRowid(tls *libc.TLS, cur uintptr, pRowid uintptr) (r int32) {
	var pCur uintptr
	_ = pCur
	pCur = cur
	**(**Tsqlite_int64)(__ccgo_up(pRowid)) = (*Tvec_static_blobs_cursor)(unsafe.Pointer(pCur)).FiRowid
	return m_SQLITE_OK
}

type div_t = Tdiv_t

type double_t = Tdouble_t

type f32 = Tf32

type float_t = Tfloat_t

type fts5_extension_function = Tfts5_extension_function

type fts5_tokenizer = Tfts5_tokenizer

type fts5_tokenizer_v2 = Tfts5_tokenizer_v2

type fvec_cleanup = Tfvec_cleanup

type i16 = Ti16

type i32 = Ti32

type i64 = Ti64

type i8 = Ti8

type imaxdiv_t = Timaxdiv_t

type int16_t = Tint16_t

type int32_t = Tint32_t

type int64_t = Tint64_t

type int8_t = Tint8_t

type int_fast16_t = Tint_fast16_t

type int_fast32_t = Tint_fast32_t

type int_fast64_t = Tint_fast64_t

type int_fast8_t = Tint_fast8_t

type int_least16_t = Tint_least16_t

type int_least32_t = Tint_least32_t

type int_least64_t = Tint_least64_t

type int_least8_t = Tint_least8_t

type intmax_t = Tintmax_t

type intptr_t = Tintptr_t

type ldiv_t = Tldiv_t

type lldiv_t = Tlldiv_t

const m_CARRAY_BLOB = 4

const m_CARRAY_DOUBLE = 2

const m_CARRAY_INT32 = 0

const m_CARRAY_INT64 = 1

const m_CARRAY_TEXT = 3

const m_COMPILER_SUPPORTS_VTAB_IN = 1

const m_E2BIG = 7

const m_EACCES = 13

const m_EBADF = 9

const m_EBUSY = 16

const m_ECHILD = 10

const m_EDOM = 33

const m_EEXIST = 17

const m_EFAULT = 14

const m_EFBIG = 27

const m_EINTR = 4

const m_EINVAL = 22

const m_EIO = 5

const m_EISDIR = 21

const m_EMFILE = 24

const m_EMLINK = 31

const m_ENFILE = 23

const m_ENODEV = 19

const m_ENOENT = 2

const m_ENOEXEC = 8

const m_ENOMEM = 12

const m_ENOSPC = 28

const m_ENOTDIR = 20

const m_ENOTTY = 25

const m_ENXIO = 6

const m_EPERM = 1

const m_EPIPE = 32

const m_ERANGE = 34

const m_EROFS = 30

const m_ESPIPE = 29

const m_ESRCH = 3

const m_EXDEV = 18

const m_EXIT_FAILURE = 1

const m_EXIT_SUCCESS = 0

const m_FTS5_TOKENIZE_AUX = 0x0008

const m_FTS5_TOKENIZE_DOCUMENT = 0x0004

const m_FTS5_TOKENIZE_PREFIX = 0x0002

const m_FTS5_TOKENIZE_QUERY = 0x0001

const m_FTS5_TOKEN_COLOCATED = 0x0001

const m_FULLY_WITHIN = 2

const m_JSON_SUBTYPE = 74

const m_MAX_STATIC_BLOBS = 16

const m_NDEBUG = 1

const m_NOT_WITHIN = 0

const m_NPY_PARSE_ERROR = "Error parsing numpy array: numpy header did not start with '{'"

const m_PARTLY_WITHIN = 1

const m_PRIX32 = "X"

const m_PRId32 = "d"

const m_PRIi32 = "i"

const m_PRIo32 = "o"

const m_PRIu32 = "u"

const m_PRIx32 = "x"

const m_REPORT_URL = "https://github.com/asg017/sqlite-vec/issues/new"

const m_SCNd16 = "hd"

const m_SCNd32 = "d"

const m_SCNi16 = "hi"

const m_SCNi32 = "i"

const m_SCNo16 = "ho"

const m_SCNo32 = "o"

const m_SCNu16 = "hu"

const m_SCNu32 = "u"

const m_SCNx16 = "hx"

const m_SCNx32 = "x"

const m_SQLITE3_TEXT = 3

const m_SQLITE_ABORT = 4

const m_SQLITE_ACCESS_EXISTS = 0

const m_SQLITE_ACCESS_READ = 2

const m_SQLITE_ACCESS_READWRITE = 1

const m_SQLITE_ALTER_TABLE = 26

const m_SQLITE_ANALYZE = 28

const m_SQLITE_ANY = 5

const m_SQLITE_ATTACH = 24

const m_SQLITE_AUTH = 23

const m_SQLITE_BLOB = 4

const m_SQLITE_BUSY = 5

const m_SQLITE_CANTOPEN = 14

const m_SQLITE_CARRAY_BLOB = 4

const m_SQLITE_CARRAY_DOUBLE = 2

const m_SQLITE_CARRAY_INT32 = 0

const m_SQLITE_CARRAY_INT64 = 1

const m_SQLITE_CARRAY_TEXT = 3

const m_SQLITE_CHECKPOINT_FULL = 1

const m_SQLITE_CHECKPOINT_PASSIVE = 0

const m_SQLITE_CHECKPOINT_RESTART = 2

const m_SQLITE_CHECKPOINT_TRUNCATE = 3

const m_SQLITE_CONFIG_COVERING_INDEX_SCAN = 20

const m_SQLITE_CONFIG_GETMALLOC = 5

const m_SQLITE_CONFIG_GETMUTEX = 11

const m_SQLITE_CONFIG_GETPCACHE = 15

const m_SQLITE_CONFIG_GETPCACHE2 = 19

const m_SQLITE_CONFIG_HEAP = 8

const m_SQLITE_CONFIG_LOG = 16

const m_SQLITE_CONFIG_LOOKASIDE = 13

const m_SQLITE_CONFIG_MALLOC = 4

const m_SQLITE_CONFIG_MEMDB_MAXSIZE = 29

const m_SQLITE_CONFIG_MEMSTATUS = 9

const m_SQLITE_CONFIG_MMAP_SIZE = 22

const m_SQLITE_CONFIG_MULTITHREAD = 2

const m_SQLITE_CONFIG_MUTEX = 10

const m_SQLITE_CONFIG_PAGECACHE = 7

const m_SQLITE_CONFIG_PCACHE = 14

const m_SQLITE_CONFIG_PCACHE2 = 18

const m_SQLITE_CONFIG_PCACHE_HDRSZ = 24

const m_SQLITE_CONFIG_PMASZ = 25

const m_SQLITE_CONFIG_ROWID_IN_VIEW = 30

const m_SQLITE_CONFIG_SCRATCH = 6

const m_SQLITE_CONFIG_SERIALIZED = 3

const m_SQLITE_CONFIG_SINGLETHREAD = 1

const m_SQLITE_CONFIG_SMALL_MALLOC = 27

const m_SQLITE_CONFIG_SORTERREF_SIZE = 28

const m_SQLITE_CONFIG_SQLLOG = 21

const m_SQLITE_CONFIG_STMTJRNL_SPILL = 26

const m_SQLITE_CONFIG_URI = 17

const m_SQLITE_CONFIG_WIN32_HEAPSIZE = 23

const m_SQLITE_CONSTRAINT = 19

const m_SQLITE_COPY = 0

const m_SQLITE_CORE = 1

const m_SQLITE_CORRUPT = 11

const m_SQLITE_CREATE_INDEX = 1

const m_SQLITE_CREATE_TABLE = 2

const m_SQLITE_CREATE_TEMP_INDEX = 3

const m_SQLITE_CREATE_TEMP_TABLE = 4

const m_SQLITE_CREATE_TEMP_TRIGGER = 5

const m_SQLITE_CREATE_TEMP_VIEW = 6

const m_SQLITE_CREATE_TRIGGER = 7

const m_SQLITE_CREATE_VIEW = 8

const m_SQLITE_CREATE_VTABLE = 29

const m_SQLITE_DBCONFIG_DEFENSIVE = 1010

const m_SQLITE_DBCONFIG_DQS_DDL = 1014

const m_SQLITE_DBCONFIG_DQS_DML = 1013

const m_SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE = 1020

const m_SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE = 1021

const m_SQLITE_DBCONFIG_ENABLE_COMMENTS = 1022

const m_SQLITE_DBCONFIG_ENABLE_FKEY = 1002

const m_SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004

const m_SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005

const m_SQLITE_DBCONFIG_ENABLE_QPSG = 1007

const m_SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003

const m_SQLITE_DBCONFIG_ENABLE_VIEW = 1015

const m_SQLITE_DBCONFIG_FP_DIGITS = 1023

const m_SQLITE_DBCONFIG_LEGACY_ALTER_TABLE = 1012

const m_SQLITE_DBCONFIG_LEGACY_FILE_FORMAT = 1016

const m_SQLITE_DBCONFIG_LOOKASIDE = 1001

const m_SQLITE_DBCONFIG_MAINDBNAME = 1000

const m_SQLITE_DBCONFIG_MAX = 1023

const m_SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006

const m_SQLITE_DBCONFIG_RESET_DATABASE = 1009

const m_SQLITE_DBCONFIG_REVERSE_SCANORDER = 1019

const m_SQLITE_DBCONFIG_STMT_SCANSTATUS = 1018

const m_SQLITE_DBCONFIG_TRIGGER_EQP = 1008

const m_SQLITE_DBCONFIG_TRUSTED_SCHEMA = 1017

const m_SQLITE_DBCONFIG_WRITABLE_SCHEMA = 1011

const m_SQLITE_DBSTATUS_CACHE_HIT = 7

const m_SQLITE_DBSTATUS_CACHE_MISS = 8

const m_SQLITE_DBSTATUS_CACHE_SPILL = 12

const m_SQLITE_DBSTATUS_CACHE_USED = 1

const m_SQLITE_DBSTATUS_CACHE_USED_SHARED = 11

const m_SQLITE_DBSTATUS_CACHE_WRITE = 9

const m_SQLITE_DBSTATUS_DEFERRED_FKS = 10

const m_SQLITE_DBSTATUS_LOOKASIDE_HIT = 4

const m_SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL = 6

const m_SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE = 5

const m_SQLITE_DBSTATUS_LOOKASIDE_USED = 0

const m_SQLITE_DBSTATUS_MAX = 13

const m_SQLITE_DBSTATUS_SCHEMA_USED = 2

const m_SQLITE_DBSTATUS_STMT_USED = 3

const m_SQLITE_DBSTATUS_TEMPBUF_SPILL = 13

const m_SQLITE_DELETE = 9

const m_SQLITE_DENY = 1

const m_SQLITE_DESERIALIZE_FREEONCLOSE = 1

const m_SQLITE_DESERIALIZE_READONLY = 4

const m_SQLITE_DESERIALIZE_RESIZEABLE = 2

const m_SQLITE_DETACH = 25

const m_SQLITE_DETERMINISTIC = 2048

const m_SQLITE_DIRECTONLY = 0x000080000

const m_SQLITE_DONE = 101

const m_SQLITE_DROP_INDEX = 10

const m_SQLITE_DROP_TABLE = 11

const m_SQLITE_DROP_TEMP_INDEX = 12

const m_SQLITE_DROP_TEMP_TABLE = 13

const m_SQLITE_DROP_TEMP_TRIGGER = 14

const m_SQLITE_DROP_TEMP_VIEW = 15

const m_SQLITE_DROP_TRIGGER = 16

const m_SQLITE_DROP_VIEW = 17

const m_SQLITE_DROP_VTABLE = 30

const m_SQLITE_EMPTY = 16

const m_SQLITE_ERROR = 1

const m_SQLITE_EXTERN = "extern"

const m_SQLITE_FAIL = 3

const m_SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31

const m_SQLITE_FCNTL_BLOCK_ON_CONNECT = 44

const m_SQLITE_FCNTL_BUSYHANDLER = 15

const m_SQLITE_FCNTL_CHUNK_SIZE = 6

const m_SQLITE_FCNTL_CKPT_DONE = 37

const m_SQLITE_FCNTL_CKPT_START = 39

const m_SQLITE_FCNTL_CKSM_FILE = 41

const m_SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32

const m_SQLITE_FCNTL_COMMIT_PHASETWO = 22

const m_SQLITE_FCNTL_DATA_VERSION = 35

const m_SQLITE_FCNTL_EXTERNAL_READER = 40

const m_SQLITE_FCNTL_FILESTAT = 45

const m_SQLITE_FCNTL_FILE_POINTER = 7

const m_SQLITE_FCNTL_GET_LOCKPROXYFILE = 2

const m_SQLITE_FCNTL_HAS_MOVED = 20

const m_SQLITE_FCNTL_JOURNAL_POINTER = 28

const m_SQLITE_FCNTL_LAST_ERRNO = 4

const m_SQLITE_FCNTL_LOCKSTATE = 1

const m_SQLITE_FCNTL_LOCK_TIMEOUT = 34

const m_SQLITE_FCNTL_MMAP_SIZE = 18

const m_SQLITE_FCNTL_NULL_IO = 43

const m_SQLITE_FCNTL_OVERWRITE = 11

const m_SQLITE_FCNTL_PDB = 30

const m_SQLITE_FCNTL_PERSIST_WAL = 10

const m_SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13

const m_SQLITE_FCNTL_PRAGMA = 14

const m_SQLITE_FCNTL_RBU = 26

const m_SQLITE_FCNTL_RESERVE_BYTES = 38

const m_SQLITE_FCNTL_RESET_CACHE = 42

const m_SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33

const m_SQLITE_FCNTL_SET_LOCKPROXYFILE = 3

const m_SQLITE_FCNTL_SIZE_HINT = 5

const m_SQLITE_FCNTL_SIZE_LIMIT = 36

const m_SQLITE_FCNTL_SYNC = 21

const m_SQLITE_FCNTL_SYNC_OMITTED = 8

const m_SQLITE_FCNTL_TEMPFILENAME = 16

const m_SQLITE_FCNTL_TRACE = 19

const m_SQLITE_FCNTL_VFSNAME = 12

const m_SQLITE_FCNTL_VFS_POINTER = 27

const m_SQLITE_FCNTL_WAL_BLOCK = 24

const m_SQLITE_FCNTL_WIN32_AV_RETRY = 9

const m_SQLITE_FCNTL_WIN32_GET_HANDLE = 29

const m_SQLITE_FCNTL_WIN32_SET_HANDLE = 23

const m_SQLITE_FCNTL_ZIPVFS = 25

const m_SQLITE_FLOAT = 2

const m_SQLITE_FORMAT = 24

const m_SQLITE_FULL = 13

const m_SQLITE_FUNCTION = 31

const m_SQLITE_GET_LOCKPROXYFILE = "SQLITE_FCNTL_GET_LOCKPROXYFILE"

const m_SQLITE_IGNORE = 2

const m_SQLITE_INDEX_CONSTRAINT_EQ = 2

const m_SQLITE_INDEX_CONSTRAINT_FUNCTION = 150

const m_SQLITE_INDEX_CONSTRAINT_GE = 32

const m_SQLITE_INDEX_CONSTRAINT_GLOB = 66

const m_SQLITE_INDEX_CONSTRAINT_GT = 4

const m_SQLITE_INDEX_CONSTRAINT_IS = 72

const m_SQLITE_INDEX_CONSTRAINT_ISNOT = 69

const m_SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70

const m_SQLITE_INDEX_CONSTRAINT_ISNULL = 71

const m_SQLITE_INDEX_CONSTRAINT_LE = 8

const m_SQLITE_INDEX_CONSTRAINT_LIKE = 65

const m_SQLITE_INDEX_CONSTRAINT_LIMIT = 73

const m_SQLITE_INDEX_CONSTRAINT_LT = 16

const m_SQLITE_INDEX_CONSTRAINT_MATCH = 64

const m_SQLITE_INDEX_CONSTRAINT_NE = 68

const m_SQLITE_INDEX_CONSTRAINT_OFFSET = 74

const m_SQLITE_INDEX_CONSTRAINT_REGEXP = 67

const m_SQLITE_INDEX_SCAN_HEX = 0x00000002

const m_SQLITE_INDEX_SCAN_UNIQUE = 0x00000001

const m_SQLITE_INNOCUOUS = 2097152

const m_SQLITE_INSERT = 18

const m_SQLITE_INTEGER = 1

const m_SQLITE_INTERNAL = 2

const m_SQLITE_INTERRUPT = 9

const m_SQLITE_IOCAP_ATOMIC = 0x00000001

const m_SQLITE_IOCAP_ATOMIC16K = 0x00000040

const m_SQLITE_IOCAP_ATOMIC1K = 0x00000004

const m_SQLITE_IOCAP_ATOMIC2K = 0x00000008

const m_SQLITE_IOCAP_ATOMIC32K = 0x00000080

const m_SQLITE_IOCAP_ATOMIC4K = 0x00000010

const m_SQLITE_IOCAP_ATOMIC512 = 0x00000002

const m_SQLITE_IOCAP_ATOMIC64K = 0x00000100

const m_SQLITE_IOCAP_ATOMIC8K = 0x00000020

const m_SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000

const m_SQLITE_IOCAP_IMMUTABLE = 0x00002000

const m_SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000

const m_SQLITE_IOCAP_SAFE_APPEND = 0x00000200

const m_SQLITE_IOCAP_SEQUENTIAL = 0x00000400

const m_SQLITE_IOCAP_SUBPAGE_READ = 0x00008000

const m_SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800

const m_SQLITE_IOERR = 10

const m_SQLITE_LAST_ERRNO = "SQLITE_FCNTL_LAST_ERRNO"

const m_SQLITE_LIMIT_ATTACHED = 7

const m_SQLITE_LIMIT_COLUMN = 2

const m_SQLITE_LIMIT_COMPOUND_SELECT = 4

const m_SQLITE_LIMIT_EXPR_DEPTH = 3

const m_SQLITE_LIMIT_FUNCTION_ARG = 6

const m_SQLITE_LIMIT_LENGTH = 0

const m_SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8

const m_SQLITE_LIMIT_PARSER_DEPTH = 12

const m_SQLITE_LIMIT_SQL_LENGTH = 1

const m_SQLITE_LIMIT_TRIGGER_DEPTH = 10

const m_SQLITE_LIMIT_VARIABLE_NUMBER = 9

const m_SQLITE_LIMIT_VDBE_OP = 5

const m_SQLITE_LIMIT_WORKER_THREADS = 11

const m_SQLITE_LOCKED = 6

const m_SQLITE_LOCK_EXCLUSIVE = 4

const m_SQLITE_LOCK_NONE = 0

const m_SQLITE_LOCK_PENDING = 3

const m_SQLITE_LOCK_RESERVED = 2

const m_SQLITE_LOCK_SHARED = 1

const m_SQLITE_MISMATCH = 20

const m_SQLITE_MISUSE = 21

const m_SQLITE_MUTEX_FAST = 0

const m_SQLITE_MUTEX_RECURSIVE = 1

const m_SQLITE_MUTEX_STATIC_APP1 = 8

const m_SQLITE_MUTEX_STATIC_APP2 = 9

const m_SQLITE_MUTEX_STATIC_APP3 = 10

const m_SQLITE_MUTEX_STATIC_LRU = 6

const m_SQLITE_MUTEX_STATIC_LRU2 = 7

const m_SQLITE_MUTEX_STATIC_MAIN = 2

const m_SQLITE_MUTEX_STATIC_MASTER = 2

const m_SQLITE_MUTEX_STATIC_MEM = 3

const m_SQLITE_MUTEX_STATIC_MEM2 = 4

const m_SQLITE_MUTEX_STATIC_OPEN = 4

const m_SQLITE_MUTEX_STATIC_PMEM = 7

const m_SQLITE_MUTEX_STATIC_PRNG = 5

const m_SQLITE_MUTEX_STATIC_VFS1 = 11

const m_SQLITE_MUTEX_STATIC_VFS2 = 12

const m_SQLITE_MUTEX_STATIC_VFS3 = 13

const m_SQLITE_NOLFS = 22

const m_SQLITE_NOMEM = 7

const m_SQLITE_NOTADB = 26

const m_SQLITE_NOTFOUND = 12

const m_SQLITE_NOTICE = 27

const m_SQLITE_NULL = 5

const m_SQLITE_OK = 0

const m_SQLITE_OPEN_AUTOPROXY = 0x00000020

const m_SQLITE_OPEN_CREATE = 0x00000004

const m_SQLITE_OPEN_DELETEONCLOSE = 0x00000008

const m_SQLITE_OPEN_EXCLUSIVE = 0x00000010

const m_SQLITE_OPEN_EXRESCODE = 0x02000000

const m_SQLITE_OPEN_FULLMUTEX = 0x00010000

const m_SQLITE_OPEN_MAIN_DB = 0x00000100

const m_SQLITE_OPEN_MAIN_JOURNAL = 0x00000800

const m_SQLITE_OPEN_MASTER_JOURNAL = 0x00004000

const m_SQLITE_OPEN_MEMORY = 0x00000080

const m_SQLITE_OPEN_NOFOLLOW = 0x01000000

const m_SQLITE_OPEN_NOMUTEX = 0x00008000

const m_SQLITE_OPEN_PRIVATECACHE = 0x00040000

const m_SQLITE_OPEN_READONLY = 0x00000001

const m_SQLITE_OPEN_READWRITE = 0x00000002

const m_SQLITE_OPEN_SHAREDCACHE = 0x00020000

const m_SQLITE_OPEN_SUBJOURNAL = 0x00002000

const m_SQLITE_OPEN_SUPER_JOURNAL = 0x00004000

const m_SQLITE_OPEN_TEMP_DB = 0x00000200

const m_SQLITE_OPEN_TEMP_JOURNAL = 0x00001000

const m_SQLITE_OPEN_TRANSIENT_DB = 0x00000400

const m_SQLITE_OPEN_URI = 0x00000040

const m_SQLITE_OPEN_WAL = 0x00080000

const m_SQLITE_PERM = 3

const m_SQLITE_PRAGMA = 19

const m_SQLITE_PREPARE_DONT_LOG = 0x10

const m_SQLITE_PREPARE_FROM_DDL = 0x20

const m_SQLITE_PREPARE_NORMALIZE = 0x02

const m_SQLITE_PREPARE_NO_VTAB = 0x04

const m_SQLITE_PREPARE_PERSISTENT = 0x01

const m_SQLITE_PROTOCOL = 15

const m_SQLITE_RANGE = 25

const m_SQLITE_READ = 20

const m_SQLITE_READONLY = 8

const m_SQLITE_RECURSIVE = 33

const m_SQLITE_REINDEX = 27

const m_SQLITE_REPLACE = 5

const m_SQLITE_RESULT_SUBTYPE = 16777216

const m_SQLITE_ROLLBACK = 1

const m_SQLITE_ROW = 100

const m_SQLITE_SAVEPOINT = 32

const m_SQLITE_SCANSTAT_COMPLEX = 0x0001

const m_SQLITE_SCANSTAT_EST = 2

const m_SQLITE_SCANSTAT_EXPLAIN = 4

const m_SQLITE_SCANSTAT_NAME = 3

const m_SQLITE_SCANSTAT_NCYCLE = 7

const m_SQLITE_SCANSTAT_NLOOP = 0

const m_SQLITE_SCANSTAT_NVISIT = 1

const m_SQLITE_SCANSTAT_PARENTID = 6

const m_SQLITE_SCANSTAT_SELECTID = 5

const m_SQLITE_SCHEMA = 17

const m_SQLITE_SCM_BRANCH = "branch-3.53"

const m_SQLITE_SCM_DATETIME = "2026-06-26T20:14:12.354Z"

const m_SQLITE_SCM_TAGS = "release version-3.53.3"

const m_SQLITE_SELECT = 21

const m_SQLITE_SELFORDER1 = 0x002000000

const m_SQLITE_SERIALIZE_NOCOPY = 0x001

const m_SQLITE_SETLK_BLOCK_ON_CONNECT = 0x01

const m_SQLITE_SET_LOCKPROXYFILE = "SQLITE_FCNTL_SET_LOCKPROXYFILE"

const m_SQLITE_SHM_EXCLUSIVE = 8

const m_SQLITE_SHM_LOCK = 2

const m_SQLITE_SHM_NLOCK = 8

const m_SQLITE_SHM_SHARED = 4

const m_SQLITE_SHM_UNLOCK = 1

const m_SQLITE_SOURCE_ID = "2026-06-26 20:14:12 d4c0e51e4aeb96955b99185ab9cde75c339e2c29c3f3f12428d364a10d782c62"

const m_SQLITE_STATUS_MALLOC_COUNT = 9

const m_SQLITE_STATUS_MALLOC_SIZE = 5

const m_SQLITE_STATUS_MEMORY_USED = 0

const m_SQLITE_STATUS_PAGECACHE_OVERFLOW = 2

const m_SQLITE_STATUS_PAGECACHE_SIZE = 7

const m_SQLITE_STATUS_PAGECACHE_USED = 1

const m_SQLITE_STATUS_PARSER_STACK = 6

const m_SQLITE_STATUS_SCRATCH_OVERFLOW = 4

const m_SQLITE_STATUS_SCRATCH_SIZE = 8

const m_SQLITE_STATUS_SCRATCH_USED = 3

const m_SQLITE_STDCALL = "SQLITE_APICALL"

const m_SQLITE_STMTSTATUS_AUTOINDEX = 3

const m_SQLITE_STMTSTATUS_FILTER_HIT = 8

const m_SQLITE_STMTSTATUS_FILTER_MISS = 7

const m_SQLITE_STMTSTATUS_FULLSCAN_STEP = 1

const m_SQLITE_STMTSTATUS_MEMUSED = 99

const m_SQLITE_STMTSTATUS_REPREPARE = 5

const m_SQLITE_STMTSTATUS_RUN = 6

const m_SQLITE_STMTSTATUS_SORT = 2

const m_SQLITE_STMTSTATUS_VM_STEP = 4

const m_SQLITE_SUBTYPE = 1048576

const m_SQLITE_SYNC_DATAONLY = 0x00010

const m_SQLITE_SYNC_FULL = 0x00003

const m_SQLITE_SYNC_NORMAL = 0x00002

const m_SQLITE_TESTCTRL_ALWAYS = 13

const m_SQLITE_TESTCTRL_ASSERT = 12

const m_SQLITE_TESTCTRL_ATOF = 34

const m_SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS = 10

const m_SQLITE_TESTCTRL_BITVEC_TEST = 8

const m_SQLITE_TESTCTRL_BYTEORDER = 22

const m_SQLITE_TESTCTRL_EXPLAIN_STMT = 19

const m_SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS = 29

const m_SQLITE_TESTCTRL_FAULT_INSTALL = 9

const m_SQLITE_TESTCTRL_FIRST = 5

const m_SQLITE_TESTCTRL_FK_NO_ACTION = 7

const m_SQLITE_TESTCTRL_GETOPT = 16

const m_SQLITE_TESTCTRL_IMPOSTER = 25

const m_SQLITE_TESTCTRL_INTERNAL_FUNCTIONS = 17

const m_SQLITE_TESTCTRL_ISINIT = 23

const m_SQLITE_TESTCTRL_ISKEYWORD = 16

const m_SQLITE_TESTCTRL_JSON_SELFCHECK = 14

const m_SQLITE_TESTCTRL_LAST = 34

const m_SQLITE_TESTCTRL_LOCALTIME_FAULT = 18

const m_SQLITE_TESTCTRL_LOGEST = 33

const m_SQLITE_TESTCTRL_NEVER_CORRUPT = 20

const m_SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD = 19

const m_SQLITE_TESTCTRL_OPTIMIZATIONS = 15

const m_SQLITE_TESTCTRL_PARSER_COVERAGE = 26

const m_SQLITE_TESTCTRL_PENDING_BYTE = 11

const m_SQLITE_TESTCTRL_PRNG_RESET = 7

const m_SQLITE_TESTCTRL_PRNG_RESTORE = 6

const m_SQLITE_TESTCTRL_PRNG_SAVE = 5

const m_SQLITE_TESTCTRL_PRNG_SEED = 28

const m_SQLITE_TESTCTRL_RESERVE = 14

const m_SQLITE_TESTCTRL_RESULT_INTREAL = 27

const m_SQLITE_TESTCTRL_SCRATCHMALLOC = 17

const m_SQLITE_TESTCTRL_SEEK_COUNT = 30

const m_SQLITE_TESTCTRL_SORTER_MMAP = 24

const m_SQLITE_TESTCTRL_TRACEFLAGS = 31

const m_SQLITE_TESTCTRL_TUNE = 32

const m_SQLITE_TESTCTRL_USELONGDOUBLE = 34

const m_SQLITE_TESTCTRL_VDBE_COVERAGE = 21

const m_SQLITE_TEXT = 3

const m_SQLITE_THREADSAFE = 0

const m_SQLITE_TOOBIG = 18

const m_SQLITE_TRACE_CLOSE = 0x08

const m_SQLITE_TRACE_PROFILE = 0x02

const m_SQLITE_TRACE_ROW = 0x04

const m_SQLITE_TRACE_STMT = 0x01

const m_SQLITE_TRANSACTION = 22

const m_SQLITE_TXN_NONE = 0

const m_SQLITE_TXN_READ = 1

const m_SQLITE_TXN_WRITE = 2

const m_SQLITE_UPDATE = 23

const m_SQLITE_UTF16 = 4

const m_SQLITE_UTF16BE = 3

const m_SQLITE_UTF16LE = 2

const m_SQLITE_UTF16_ALIGNED = 8

const m_SQLITE_UTF8 = 1

const m_SQLITE_UTF8_ZT = 16

const m_SQLITE_VEC_CHUNK_SIZE_MAX = 4096

const m_SQLITE_VEC_DEBUG_BUILD_AVX = ""

const m_SQLITE_VEC_DEBUG_BUILD_NEON = ""

const m_SQLITE_VEC_NPY_FILE_NAME = "vec0-npy-file"

const m_SQLITE_VEC_SOURCE = ""

const m_SQLITE_VEC_STATIC = 1

const m_SQLITE_VEC_VEC0_K_MAX = 4096

const m_SQLITE_VEC_VEC0_MAX_DIMENSIONS = 8192

const m_SQLITE_VEC_VERSION = "v0.1.9"

const m_SQLITE_VEC_VERSION_MAJOR = 0

const m_SQLITE_VEC_VERSION_MINOR = 1

const m_SQLITE_VEC_VERSION_PATCH = 9

const m_SQLITE_VERSION = "3.53.3"

const m_SQLITE_VERSION_NUMBER = 3053003

const m_SQLITE_VTAB_CONSTRAINT_SUPPORT = 1

const m_SQLITE_VTAB_DIRECTONLY = 3

const m_SQLITE_VTAB_INNOCUOUS = 2

const m_SQLITE_VTAB_USES_ALL_SCHEMAS = 4

const m_SQLITE_WARNING = 28

const m_SQLITE_WIN32_DATA_DIRECTORY_TYPE = 1

const m_SQLITE_WIN32_TEMP_DIRECTORY_TYPE = 2

const m_VEC0_COLUMN_ID = 0

const m_VEC0_COLUMN_OFFSET_DISTANCE = 1

const m_VEC0_COLUMN_OFFSET_K = 2

const m_VEC0_COLUMN_USERN_START = 1

const m_VEC0_MAX_AUXILIARY_COLUMNS = 16

const m_VEC0_MAX_METADATA_COLUMNS = 16

const m_VEC0_MAX_PARTITION_COLUMNS = 4

const m_VEC0_MAX_VECTOR_COLUMNS = 16

const m_VEC0_METADATA_TEXT_VIEW_BUFFER_LENGTH = 16

const m_VEC0_METADATA_TEXT_VIEW_DATA_LENGTH = 12

const m_VEC0_SHADOW_AUXILIARY_NAME = "\\\"%w\\\".\\\"%w_auxiliary\\\""

const m_VEC0_SHADOW_CHUNKS_NAME = "\\\"%w\\\".\\\"%w_chunks\\\""

const m_VEC0_SHADOW_INFO_NAME = "\\\"%w\\\".\\\"%w_info\\\""

const m_VEC0_SHADOW_METADATA_N_NAME = "\\\"%w\\\".\\\"%w_metadatachunks%02d\\\""

const m_VEC0_SHADOW_METADATA_TEXT_DATA_NAME = "\\\"%w\\\".\\\"%w_metadatatext%02d\\\""

const m_VEC0_SHADOW_ROWIDS_NAME = "\\\"%w\\\".\\\"%w_rowids\\\""

const m_VEC0_SHADOW_VECTOR_N_NAME = "\\\"%w\\\".\\\"%w_vector_chunks%02d\\\""

const m_VEC0_TOKEN_RESULT_EOF = 1

const m_VEC0_TOKEN_RESULT_ERROR = 3

const m_VEC0_TOKEN_RESULT_SOME = 2

const m_VEC_CONSTRUCTOR_ERROR = "vec0 constructor error: could not parse vector column '%s'"

const m_VEC_EACH_COLUMN_VALUE = 0

const m_VEC_EACH_COLUMN_VECTOR = 1

const m_VEC_INTERAL_ERROR = "Internal sqlite-vec error: could not initialize 'rowids get chunk position' statement"

const m_VEC_NPY_EACH_COLUMN_INPUT = 1

const m_VEC_NPY_EACH_COLUMN_VECTOR = 0

const m_VEC_STATIC_BLOBS_COUNT = 3

const m_VEC_STATIC_BLOBS_DATA = 1

const m_VEC_STATIC_BLOBS_DIMENSIONS = 2

const m_VEC_STATIC_BLOBS_NAME = 0

const m_VEC_STATIC_BLOB_ENTRIES_DISTANCE = 1

const m_VEC_STATIC_BLOB_ENTRIES_K = 2

const m_VEC_STATIC_BLOB_ENTRIES_VECTOR = 0

const m___ATOMIC_ACQUIRE = 2

const m___ATOMIC_ACQ_REL = 4

const m___ATOMIC_CONSUME = 1

const m___ATOMIC_RELAXED = 0

const m___ATOMIC_RELEASE = 3

const m___ATOMIC_SEQ_CST = 5

const m___CCGO__ = 1

const m___CHAR_BIT__ = 8

const m___DBL_DECIMAL_DIG__ = 17

const m___DBL_DIG__ = 15

const m___DBL_HAS_DENORM__ = 1

const m___DBL_HAS_INFINITY__ = 1

const m___DBL_HAS_QUIET_NAN__ = 1

const m___DBL_MANT_DIG__ = 53

const m___DBL_MAX_10_EXP__ = 308

const m___DBL_MAX_EXP__ = 1024

const m___FINITE_MATH_ONLY__ = 0

const m___FLT_DECIMAL_DIG__ = 9

const m___FLT_DIG__ = 6

const m___FLT_HAS_DENORM__ = 1

const m___FLT_HAS_INFINITY__ = 1

const m___FLT_HAS_QUIET_NAN__ = 1

const m___FLT_MANT_DIG__ = 24

const m___FLT_MAX_10_EXP__ = 38

const m___FLT_MAX_EXP__ = 128

const m___FLT_RADIX__ = 2

const m___FUNCTION__ = "__func__"

const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2

const m___GCC_ATOMIC_INT_LOCK_FREE = 2

const m___GCC_ATOMIC_LONG_LOCK_FREE = 2

const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2

const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1

const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2

const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1

const m___GNUC_STDC_INLINE__ = 1

const m___INT32_TYPE__ = "int"

const m___INTMAX_WIDTH__ = 64

const m___INT_FAST64_WIDTH__ = 64

const m___INT_LEAST16_WIDTH__ = 16

const m___INT_LEAST32_TYPE__ = "int"

const m___INT_LEAST32_WIDTH__ = 32

const m___INT_LEAST64_WIDTH__ = 64

const m___INT_LEAST8_WIDTH__ = 8

const m___INT_WIDTH__ = 32

const m___LDBL_HAS_DENORM__ = 1

const m___LDBL_HAS_INFINITY__ = 1

const m___LDBL_HAS_QUIET_NAN__ = 1

const m___OPTIMIZE__ = 1

const m___ORDER_BIG_ENDIAN__ = 4321

const m___ORDER_LITTLE_ENDIAN__ = 1234

const m___ORDER_PDP_ENDIAN__ = 3412

const m___PRAGMA_REDEFINE_EXTNAME = 1

const m___PRETTY_FUNCTION__ = "__func__"

const m___SHRT_WIDTH__ = 16

const m___SIG_ATOMIC_WIDTH__ = 32

const m___SIZEOF_DOUBLE__ = 8

const m___SIZEOF_FLOAT__ = 4

const m___SIZEOF_INT__ = 4

const m___SIZEOF_LONG_DOUBLE__ = 8

const m___SIZEOF_LONG_LONG__ = 8

const m___SIZEOF_SHORT__ = 2

const m___STDC_HOSTED__ = 1

const m___STDC_UTF_16__ = 1

const m___STDC_UTF_32__ = 1

const m___STDC_VERSION__ = 201710

const m___STDC__ = 1

const m___bool_true_false_are_defined = 1

const m___wasi__ = 1

const m_false = 0

const m_true = 1

type sbe_query_knn_data = Tsbe_query_knn_data

type size_t = Tsize_t

type sqlite3_callback = Tsqlite3_callback

type sqlite3_destructor_type = Tsqlite3_destructor_type

type sqlite3_file = Tsqlite3_file

type sqlite3_filename = Tsqlite3_filename

type sqlite3_index_constraint = Tsqlite3_index_constraint

type sqlite3_index_constraint_usage = Tsqlite3_index_constraint_usage

type sqlite3_index_info = Tsqlite3_index_info

type sqlite3_index_orderby = Tsqlite3_index_orderby

type sqlite3_int64 = Tsqlite3_int64

type sqlite3_io_methods = Tsqlite3_io_methods

type sqlite3_mem_methods = Tsqlite3_mem_methods

type sqlite3_module = Tsqlite3_module

type sqlite3_mutex_methods = Tsqlite3_mutex_methods

type sqlite3_pcache_methods = Tsqlite3_pcache_methods

type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2

type sqlite3_pcache_page = Tsqlite3_pcache_page

type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl

type sqlite3_rtree_geometry = Tsqlite3_rtree_geometry

type sqlite3_rtree_query_info = Tsqlite3_rtree_query_info

type sqlite3_snapshot = Tsqlite3_snapshot

type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr

type sqlite3_uint64 = Tsqlite3_uint64

type sqlite3_vfs = Tsqlite3_vfs

type sqlite3_vtab = Tsqlite3_vtab

type sqlite3_vtab_cursor = Tsqlite3_vtab_cursor

type sqlite_int64 = Tsqlite_int64

type sqlite_uint64 = Tsqlite_uint64

type ssize_t = Tssize_t

type static_blob = Tstatic_blob

type static_blob_definition = Tstatic_blob_definition

type t__builtin_va_list = uintptr

type t__ccgo_fp__Xensure_vector_match_6 = func(*libc.TLS, uintptr)

type t__ccgo_fp__Xensure_vector_match_7 = func(*libc.TLS, uintptr)

type t__ccgo_fp__Xvector_from_value_4 = func(*libc.TLS, uintptr)

type u32 = Tu32

type u64 = Tu64

type u8 = Tu8

type uint16_t = Tuint16_t

type uint32_t = Tuint32_t

type uint64_t = Tuint64_t

type uint8_t = Tuint8_t

type uint_fast16_t = Tuint_fast16_t

type uint_fast32_t = Tuint_fast32_t

type uint_fast64_t = Tuint_fast64_t

type uint_fast8_t = Tuint_fast8_t

type uint_least16_t = Tuint_least16_t

type uint_least32_t = Tuint_least32_t

type uint_least64_t = Tuint_least64_t

type uint_least8_t = Tuint_least8_t

type uintmax_t = Tuintmax_t

type uintptr_t = Tuintptr_t

type usize = Tusize

// sqlite3_vtab_in() was added in SQLite version 3.38 (2022-02-22)
// https://www.sqlite.org/changes.html#version_3_38_0

type va_list = Tva_list

type vec0_cursor = Tvec0_cursor

type vec0_distance_constraint_operator = Tvec0_distance_constraint_operator

type vec0_idxstr_kind = Tvec0_idxstr_kind

type vec0_metadata_column_kind = Tvec0_metadata_column_kind

type vec0_metadata_operator = Tvec0_metadata_operator

type vec0_partition_operator = Tvec0_partition_operator

type vec0_query_fullscan_data = Tvec0_query_fullscan_data

type vec0_query_knn_data = Tvec0_query_knn_data

type vec0_query_plan = Tvec0_query_plan

type vec0_query_point_data = Tvec0_query_point_data

type vec0_user_column_kind = Tvec0_user_column_kind

type vec0_vtab = Tvec0_vtab

type vec_each_cursor = Tvec_each_cursor

type vec_each_vtab = Tvec_each_vtab

type vec_npy_each_cursor = Tvec_npy_each_cursor

type vec_npy_each_input_type = Tvec_npy_each_input_type

type vec_npy_each_vtab = Tvec_npy_each_vtab

type vec_sbe_query_plan = Tvec_sbe_query_plan

type vec_static_blob_data = Tvec_static_blob_data

type vec_static_blob_entries_cursor = Tvec_static_blob_entries_cursor

type vec_static_blob_entries_vtab = Tvec_static_blob_entries_vtab

type vec_static_blobs_cursor = Tvec_static_blobs_cursor

type vec_static_blobs_vtab = Tvec_static_blobs_vtab

type vector_cleanup = Tvector_cleanup

type wchar_t = Twchar_t
