libsqlite_vec

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2025 License: BSD-3-Clause Imports: 9 Imported by: 0

README

sqlite_vec

Package libsqlite_vec provides a CGo-free version of libsqlite_vec0.a from asg017 sqlite_vec.

Documentation

Overview

Package libsqlite_vec provides a CGo-free version of libsqlite_vec0.a from asg017 sqlite_vec.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func X_cmp

func X_cmp(tls *libc.TLS, a uintptr, b uintptr) (r int32)

func Xarray_append

func Xarray_append(tls *libc.TLS, array uintptr, element uintptr) (r int32)

func Xarray_cleanup

func Xarray_cleanup(tls *libc.TLS, array uintptr)

func Xarray_init

func Xarray_init(tls *libc.TLS, array uintptr, element_size Tsize_t, init_capacity Tsize_t) (r int32)

C documentation

/**
 * @brief Initial an array with the given element size and capacity.
 *
 * @param array
 * @param element_size
 * @param init_capacity
 * @return SQLITE_OK on success, error code on failure. Only error is
 * SQLITE_NOMEM
 */

func Xbitmap_and_inplace

func Xbitmap_and_inplace(tls *libc.TLS, base uintptr, other uintptr, n Ti32)

func Xbitmap_clear

func Xbitmap_clear(tls *libc.TLS, bitmap uintptr, n Ti32)

func Xbitmap_copy

func Xbitmap_copy(tls *libc.TLS, base uintptr, from uintptr, n Ti32)

func Xbitmap_fill

func Xbitmap_fill(tls *libc.TLS, bitmap uintptr, n Ti32)

func Xbitmap_get

func Xbitmap_get(tls *libc.TLS, bitmap uintptr, position Ti32) (r int32)

func Xbitmap_new

func Xbitmap_new(tls *libc.TLS, n Ti32) (r uintptr)

func Xbitmap_new_from

func Xbitmap_new_from(tls *libc.TLS, n Ti32, from uintptr) (r uintptr)

func Xbitmap_set

func Xbitmap_set(tls *libc.TLS, bitmap uintptr, position Ti32, value int32)

func Xensure_vector_match

func Xensure_vector_match(tls *libc.TLS, aValue uintptr, bValue uintptr, a uintptr, b uintptr, element_type uintptr, dimensions uintptr, outACleanup uintptr, outBCleanup uintptr, outError uintptr) (r int32)

func Xfvec_cleanup_noop

func Xfvec_cleanup_noop(tls *libc.TLS, _1 uintptr)

func Xis_alpha

func Xis_alpha(tls *libc.TLS, x int8) (r int32)

func Xis_digit

func Xis_digit(tls *libc.TLS, x int8) (r int32)

func Xis_whitespace

func Xis_whitespace(tls *libc.TLS, x int8) (r int32)

func Xmerge_sorted_lists

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)

func Xmin_idx

func Xmin_idx(tls *libc.TLS, distances uintptr, n Ti32, candidates uintptr, out uintptr, k Ti32, bTaken uintptr, k_used uintptr) (r int32)

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 Xnpy_scanner_init

func Xnpy_scanner_init(tls *libc.TLS, scanner uintptr, source uintptr, source_length int32)

func Xnpy_scanner_next

func Xnpy_scanner_next(tls *libc.TLS, scanner uintptr, out uintptr) (r int32)

func Xnpy_token_next

func Xnpy_token_next(tls *libc.TLS, start uintptr, end uintptr, out uintptr) (r int32)

func Xparse_npy_buffer

func Xparse_npy_buffer(tls *libc.TLS, pVTab uintptr, buffer uintptr, bufferLength int32, data uintptr, numElements uintptr, numDimensions uintptr, element_type uintptr) (r int32)

func Xparse_npy_file

func Xparse_npy_file(tls *libc.TLS, pVTab uintptr, file uintptr, pCur uintptr) (r int32)

func Xparse_npy_header

func Xparse_npy_header(tls *libc.TLS, pVTab uintptr, header uintptr, headerLength Tsize_t, out_element_type uintptr, fortran_order uintptr, numElements uintptr, numDimensions uintptr) (r int32)

func Xsbe_query_knn_data_clear

func Xsbe_query_knn_data_clear(tls *libc.TLS, knn_data uintptr)

func Xsqlite3_vec_init

func Xsqlite3_vec_init(tls *libc.TLS, db uintptr, pzErrMsg uintptr, pApi uintptr) (r int32)

func Xsqlite3_vec_numpy_init added in v0.0.38

func Xsqlite3_vec_numpy_init(tls *libc.TLS, db uintptr, pzErrMsg uintptr, pApi uintptr) (r int32)

func Xsqlite3_vec_static_blobs_init

func Xsqlite3_vec_static_blobs_init(tls *libc.TLS, db uintptr, pzErrMsg uintptr, pApi uintptr) (r int32)

func Xtype_name

func Xtype_name(tls *libc.TLS, type1 int32) (r uintptr)

func Xvec0Filter_fullscan

func Xvec0Filter_fullscan(tls *libc.TLS, p uintptr, pCur uintptr) (r int32)

func Xvec0Filter_knn

func Xvec0Filter_knn(tls *libc.TLS, pCur uintptr, p uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) (r int32)

func Xvec0Filter_knn_chunks_iter

func Xvec0Filter_knn_chunks_iter(tls *libc.TLS, p uintptr, stmtChunks uintptr, vector_column uintptr, vectorColumnIdx int32, arrayRowidsIn uintptr, aMetadataIn uintptr, idxStr uintptr, argc int32, argv uintptr, queryVector uintptr, k Ti64, out_topk_rowids uintptr, out_topk_distances uintptr, out_used uintptr) (r int32)

func Xvec0Filter_point

func Xvec0Filter_point(tls *libc.TLS, pCur uintptr, p uintptr, argc int32, argv uintptr) (r int32)

func Xvec0Update_Delete

func Xvec0Update_Delete(tls *libc.TLS, pVTab uintptr, idValue uintptr) (r int32)

func Xvec0Update_Delete_ClearMetadata added in v0.0.38

func Xvec0Update_Delete_ClearMetadata(tls *libc.TLS, p uintptr, metadata_idx int32, rowid Ti64, chunk_id Ti64, chunk_offset Tu64) (r int32)

func Xvec0Update_Delete_ClearValidity

func Xvec0Update_Delete_ClearValidity(tls *libc.TLS, p uintptr, chunk_id Ti64, chunk_offset Tu64) (r int32)

func Xvec0Update_Delete_DeleteAux added in v0.0.38

func Xvec0Update_Delete_DeleteAux(tls *libc.TLS, p uintptr, rowid Ti64) (r int32)

func Xvec0Update_Delete_DeleteRowids

func Xvec0Update_Delete_DeleteRowids(tls *libc.TLS, p uintptr, rowid Ti64) (r int32)

func Xvec0Update_Insert

func Xvec0Update_Insert(tls *libc.TLS, pVTab uintptr, argc int32, argv uintptr, pRowid uintptr) (r int32)

C documentation

/**
 * @brief Handles INSERT INTO operations on a vec0 table.
 *
 * @return int SQLITE_OK on success, otherwise error code on failure
 */

func Xvec0Update_InsertNextAvailableStep

func Xvec0Update_InsertNextAvailableStep(tls *libc.TLS, p uintptr, partitionKeyValues uintptr, chunk_rowid uintptr, chunk_offset uintptr, blobChunksValidity uintptr, bufferChunksValidity uintptr) (r int32)

C documentation

/**
 * @brief Determines the "next available" chunk position for a newly inserted
 * vec0 row.
 *
 * This operation may insert a new "blank" chunk the _chunks table, if there is
 * no more space in previous chunks.
 *
 * @param p: virtual table
 * @param partitionKeyValues: array of partition key column values, to constrain
 * against any partition key columns.
 * @param chunk_rowid: Output rowid of the chunk in the _chunks virtual table
 * that has the avialabiity.
 * @param chunk_offset: Output the index of the available space insert the
 * chunk, based on the index of the first available validity bit.
 * @param pBlobValidity: Output blob of the validity column of the available
 * chunk. Will be opened with read/write permissions.
 * @param pValidity: Output buffer of the original chunk's validity column.
 *    Needs to be cleaned up with sqlite3_free().
 * @return int SQLITE_OK on success, error code on failure
 */

func Xvec0Update_InsertRowidStep

func Xvec0Update_InsertRowidStep(tls *libc.TLS, p uintptr, idValue uintptr, rowid uintptr) (r int32)

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_InsertWriteFinalStep

func Xvec0Update_InsertWriteFinalStep(tls *libc.TLS, p uintptr, chunk_rowid Ti64, chunk_offset Ti64, _rowid Ti64, vectorDatas uintptr, blobChunksValidity uintptr, bufferChunksValidity uintptr) (r int32)

C documentation

/**
 * @brief
 *
 * @param p vec0 virtual table
 * @param chunk_rowid: which chunk to write to
 * @param chunk_offset: the offset inside the chunk to write the vector to.
 * @param rowid: the rowid of the inserting row
 * @param vectorDatas: array of the vector data to insert
 * @param blobValidity: writeable validity blob of the row's assigned chunk.
 * @param validity: snapshot buffer of the valdity column from the row's
 * assigned chunk.
 * @return int SQLITE_OK on success, error code on failure
 */

func Xvec0Update_Update added in v0.0.38

func Xvec0Update_Update(tls *libc.TLS, pVTab uintptr, argc int32, argv uintptr) (r int32)

func Xvec0Update_UpdateAuxColumn added in v0.0.38

func Xvec0Update_UpdateAuxColumn(tls *libc.TLS, p uintptr, auxiliary_column_idx int32, value uintptr, rowid Ti64) (r int32)

func Xvec0Update_UpdateVectorColumn

func Xvec0Update_UpdateVectorColumn(tls *libc.TLS, p uintptr, chunk_id Ti64, chunk_offset Ti64, i int32, valueVector uintptr) (r int32)

func Xvec0_chunks_iter added in v0.0.38

func Xvec0_chunks_iter(tls *libc.TLS, p uintptr, idxStr uintptr, argc int32, argv uintptr, outStmt uintptr) (r int32)

C documentation

/**
 * @brief Crete at "iterator" (sqlite3_stmt) of chunks with the given constraints
 *
 * Any VEC0_IDXSTR_KIND_KNN_PARTITON_CONSTRAINT values in idxStr/argv will be applied
 * as WHERE constraints in the underlying stmt SQL, and any consumer of the stmt
 * can freely step through the stmt with all constraints satisfied.
 *
 * @param p - vec0_vtab
 * @param idxStr - the xBestIndex/xFilter idxstr containing VEC0_IDXSTR values
 * @param argc - number of argv values from xFilter
 * @param argv - array of sqlite3_value from xFilter
 * @param outStmt - output sqlite3_stmt of chunks with all filters applied
 * @return int SQLITE_OK on success, error code otherwise
 */

func Xvec0_column_distance_idx

func Xvec0_column_distance_idx(tls *libc.TLS, p uintptr) (r int32)

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_idx_is_auxiliary added in v0.0.38

func Xvec0_column_idx_is_auxiliary(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns 1 if the given column-based index is a auxiliary column,
 * 0 otherwise.
 */

func Xvec0_column_idx_is_metadata added in v0.0.38

func Xvec0_column_idx_is_metadata(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns 1 if the given column-based index is a metadata column,
 * 0 otherwise.
 */

func Xvec0_column_idx_is_partition added in v0.0.38

func Xvec0_column_idx_is_partition(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns 1 if the given column-based index is a "partition key" column,
 * 0 otherwise.
 */

func Xvec0_column_idx_is_vector

func Xvec0_column_idx_is_vector(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns 1 if the given column-based index is a valid vector column,
 * 0 otherwise.
 */

func Xvec0_column_idx_to_auxiliary_idx added in v0.0.38

func Xvec0_column_idx_to_auxiliary_idx(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns the auxiliary column index of the given user column index.
 * ONLY call if validated with vec0_column_idx_to_partition_idx before
 */

func Xvec0_column_idx_to_metadata_idx added in v0.0.38

func Xvec0_column_idx_to_metadata_idx(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns the metadata column index of the given user column index.
 * ONLY call if validated with vec0_column_idx_is_metadata before
 */

func Xvec0_column_idx_to_partition_idx added in v0.0.38

func Xvec0_column_idx_to_partition_idx(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns the partition column index of the given user column index.
 * ONLY call if validated with vec0_column_idx_is_vector before
 */

func Xvec0_column_idx_to_vector_idx

func Xvec0_column_idx_to_vector_idx(tls *libc.TLS, pVtab uintptr, column_idx int32) (r int32)

C documentation

/**
 * Returns the vector index of the given user column index.
 * ONLY call if validated with vec0_column_idx_is_vector before
 */

func Xvec0_column_k_idx

func Xvec0_column_k_idx(tls *libc.TLS, p uintptr) (r int32)

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_cursor_clear added in v0.0.38

func Xvec0_cursor_clear(tls *libc.TLS, pCur uintptr)

func Xvec0_free

func Xvec0_free(tls *libc.TLS, p uintptr)

C documentation

/**
 * @brief Free all memory and sqlite3_stmt members of a vec0_vtab
 *
 * @param p vec0_vtab pointer
 */

func Xvec0_free_resources

func Xvec0_free_resources(tls *libc.TLS, p uintptr)

C documentation

/**
 * @brief Finalize all the sqlite3_stmt members in a vec0_vtab.
 *
 * @param p vec0_vtab pointer
 */

func Xvec0_get_auxiliary_value_for_rowid added in v0.0.38

func Xvec0_get_auxiliary_value_for_rowid(tls *libc.TLS, pVtab uintptr, rowid Ti64, auxiliary_idx int32, outValue uintptr) (r int32)

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_chunk_position

func Xvec0_get_chunk_position(tls *libc.TLS, p uintptr, rowid Ti64, id uintptr, chunk_id uintptr, chunk_offset uintptr) (r int32)

C documentation

/**
 * @brief Retrieve the chunk_id, chunk_offset, and possible "id" value
 * of a vec0_vtab row with the provided rowid
 *
 * @param p vec0_vtab
 * @param rowid the rowid of the row to query
 * @param id output, optional sqlite3_value to provide the id.
 *            Useful for text PK rows. Must be freed with sqlite3_value_free()
 * @param chunk_id output, the chunk_id the row belongs to
 * @param chunk_offset  output, the offset within the chunk the row belongs to
 * @return SQLITE_ROW on success, error code otherwise. SQLITE_EMPTY if row DNE
 */

func Xvec0_get_id_value_from_rowid

func Xvec0_get_id_value_from_rowid(tls *libc.TLS, pVtab uintptr, rowid Ti64, out uintptr) (r int32)

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_latest_chunk_rowid

func Xvec0_get_latest_chunk_rowid(tls *libc.TLS, p uintptr, chunk_rowid uintptr, partitionKeyValues uintptr) (r int32)

func Xvec0_get_metadata_text_long_value added in v0.0.38

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)

func Xvec0_get_partition_value_for_rowid added in v0.0.38

func Xvec0_get_partition_value_for_rowid(tls *libc.TLS, pVtab uintptr, rowid Ti64, partition_idx int32, outValue uintptr) (r int32)

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_vector_data

func Xvec0_get_vector_data(tls *libc.TLS, pVtab uintptr, rowid Ti64, vector_column_idx int32, outVector uintptr, outVectorSize uintptr) (r int32)

C documentation

/**
 * @brief
 *
 * @param pVtab: virtual table to query
 * @param rowid: row to lookup
 * @param vector_column_idx: which vector column to query
 * @param outVector: Output pointer to the vector buffer.
 *                    Must be sqlite3_free()'ed.
 * @param outVectorSize: Pointer to a int where the size of outVector
 *                       will be stored.
 * @return int SQLITE_OK on success.
 */

func Xvec0_metadata_chunk_size added in v0.0.38

func Xvec0_metadata_chunk_size(tls *libc.TLS, kind Tvec0_metadata_column_kind, chunk_size int32) (r int32)

func Xvec0_metadata_filter_text added in v0.0.38

func Xvec0_metadata_filter_text(tls *libc.TLS, p uintptr, value uintptr, buffer uintptr, size int32, op Tvec0_metadata_operator, b uintptr, metadata_idx int32, chunk_rowid int32, aMetadataIn uintptr, argv_idx int32) (r int32)

func Xvec0_new_chunk

func Xvec0_new_chunk(tls *libc.TLS, p uintptr, partitionKeyValues uintptr, chunk_rowid uintptr) (r int32)

C documentation

/**
 * @brief Adds a new chunk for the vec0 table, and the corresponding vector
 * chunks.
 *
 * Inserts a new row into the _chunks table, with blank data, and uses that new
 * rowid to insert new blank rows into _vector_chunksXX tables.
 *
 * @param p: vec0 table to add new chunk
 * @param paritionKeyValues: Array of partition key valeus for the new chunk, if available
 * @param chunk_rowid: Output pointer, if not NULL, then will be filled with the
 * new chunk rowid.
 * @return int SQLITE_OK on success, error code otherwise.
 */

func Xvec0_num_defined_user_columns added in v0.0.38

func Xvec0_num_defined_user_columns(tls *libc.TLS, p uintptr) (r int32)

func Xvec0_parse_auxiliary_column_definition added in v0.0.38

func Xvec0_parse_auxiliary_column_definition(tls *libc.TLS, source uintptr, source_length int32, out_column_name uintptr, out_column_name_length uintptr, out_column_type uintptr) (r int32)

C documentation

/**
 * @brief Parse an argv[i] entry of a vec0 virtual table definition, and see if
 * it's an auxiliar column definition, ie `+[name] [type]` like `+contents text`
 *
 * @param source: argv[i] source string
 * @param source_length: length of the source string
 * @param out_column_name: If it is a partition key, the output column name. Same lifetime
 * as source, points to specific char *
 * @param out_column_name_length: Length of out_column_name in bytes
 * @param out_column_type: SQLITE_TEXT, SQLITE_INTEGER, SQLITE_FLOAT, or SQLITE_BLOB.
 * @return int: SQLITE_EMPTY if not an aux column, SQLITE_OK if it is.
 */

func Xvec0_parse_metadata_column_definition added in v0.0.38

func Xvec0_parse_metadata_column_definition(tls *libc.TLS, source uintptr, source_length int32, out_column_name uintptr, out_column_name_length uintptr, out_column_type uintptr) (r int32)

C documentation

/**
 * @brief Parse an argv[i] entry of a vec0 virtual table definition, and see if
 * it's an metadata column definition, ie `[name] [type]` like `is_released boolean`
 *
 * @param source: argv[i] source string
 * @param source_length: length of the source string
 * @param out_column_name: If it is a metadata column, the output column name. Same lifetime
 * as source, points to specific char *
 * @param out_column_name_length: Length of out_column_name in bytes
 * @param out_column_type: one of vec0_metadata_column_kind
 * @return int: SQLITE_EMPTY if not an metadata column, SQLITE_OK if it is.
 */

func Xvec0_parse_partition_key_definition added in v0.0.38

func Xvec0_parse_partition_key_definition(tls *libc.TLS, source uintptr, source_length int32, out_column_name uintptr, out_column_name_length uintptr, out_column_type uintptr) (r int32)

C documentation

/**
 * @brief Parse an argv[i] entry of a vec0 virtual table definition, and see if
 * it's a PARTITION KEY definition.
 *
 * @param source: argv[i] source string
 * @param source_length: length of the source string
 * @param out_column_name: If it is a partition key, the output column name. Same lifetime
 * as source, points to specific char *
 * @param out_column_name_length: Length of out_column_name in bytes
 * @param out_column_type: SQLITE_TEXT or SQLITE_INTEGER.
 * @return int: SQLITE_EMPTY if not a PK, SQLITE_OK if it is.
 */

func Xvec0_parse_primary_key_definition added in v0.0.38

func Xvec0_parse_primary_key_definition(tls *libc.TLS, source uintptr, source_length int32, out_column_name uintptr, out_column_name_length uintptr, out_column_type uintptr) (r int32)

C documentation

/**
 * @brief Parse an argv[i] entry of a vec0 virtual table definition, and see if
 * it's a PRIMARY KEY definition.
 *
 * @param source: argv[i] source string
 * @param source_length: length of the source string
 * @param out_column_name: If it is a PK, the output column name. Same lifetime
 * as source, points to specific char *
 * @param out_column_name_length: Length of out_column_name in bytes
 * @param out_column_type: SQLITE_TEXT or SQLITE_INTEGER.
 * @return int: SQLITE_EMPTY if not a PK, SQLITE_OK if it is.
 */

func Xvec0_parse_table_option

func Xvec0_parse_table_option(tls *libc.TLS, source uintptr, source_length int32, out_key uintptr, out_key_length uintptr, out_value uintptr, out_value_length uintptr) (r int32)

func Xvec0_parse_vector_column added in v0.0.38

func Xvec0_parse_vector_column(tls *libc.TLS, source uintptr, source_length int32, outColumn uintptr) (r int32)

C documentation

/**
 * @brief Parse an vec0 vtab argv[i] column definition and see if
 * it's a vector column defintion, ex `contents_embedding float[768]`.
 *
 * @param source vec0 argv[i] item
 * @param source_length length of source in bytes
 * @param outColumn Output the parse vector column to this struct, if success
 * @return int SQLITE_OK on success, SQLITE_EMPTY is it's not a vector column
 * definition, SQLITE_ERROR on error.
 */

func Xvec0_query_fullscan_data_clear

func Xvec0_query_fullscan_data_clear(tls *libc.TLS, fullscan_data uintptr)

func Xvec0_query_knn_data_clear

func Xvec0_query_knn_data_clear(tls *libc.TLS, knn_data uintptr)

func Xvec0_query_point_data_clear

func Xvec0_query_point_data_clear(tls *libc.TLS, point_data uintptr)

func Xvec0_result_id

func Xvec0_result_id(tls *libc.TLS, p uintptr, context uintptr, rowid Ti64) (r int32)

func Xvec0_result_metadata_value_for_rowid added in v0.0.38

func Xvec0_result_metadata_value_for_rowid(tls *libc.TLS, p uintptr, rowid Ti64, metadata_idx int32, context uintptr) (r int32)

C documentation

/**
 * @brief Result the given metadata value for the given row and metadata column index.
 * Will traverse the metadatachunksNN table with BLOB I/0 for the given rowid.
 *
 * @param p
 * @param rowid
 * @param metadata_idx
 * @param context
 * @return int
 */

func Xvec0_rowid_from_id

func Xvec0_rowid_from_id(tls *libc.TLS, p uintptr, valueId uintptr, rowid uintptr) (r int32)

func Xvec0_rowids_insert_id

func Xvec0_rowids_insert_id(tls *libc.TLS, p uintptr, idValue uintptr, rowid uintptr) (r int32)

func Xvec0_rowids_insert_rowid

func Xvec0_rowids_insert_rowid(tls *libc.TLS, p uintptr, rowid Ti64) (r int32)

func Xvec0_rowids_update_position

func Xvec0_rowids_update_position(tls *libc.TLS, p uintptr, rowid Ti64, chunk_rowid Ti64, chunk_offset Ti64) (r int32)

func Xvec0_scanner_init

func Xvec0_scanner_init(tls *libc.TLS, scanner uintptr, source uintptr, source_length int32)

func Xvec0_scanner_next

func Xvec0_scanner_next(tls *libc.TLS, scanner uintptr, out uintptr) (r int32)

func Xvec0_set_metadata_filter_bitmap added in v0.0.38

func Xvec0_set_metadata_filter_bitmap(tls *libc.TLS, p uintptr, metadata_idx int32, op Tvec0_metadata_operator, value uintptr, blob uintptr, chunk_rowid Ti64, b uintptr, size int32, aMetadataIn uintptr, argv_idx int32) (r int32)

C documentation

/**
 * @brief Fill in bitmap of chunk values, whether or not the values match a metadata constraint
 *
 * @param p vec0_vtab
 * @param metadata_idx index of the metatadata column to perfrom constraints on
 * @param value sqlite3_value of the constraints value
 * @param blob sqlite3_blob that is already opened on the metdata column's shadow chunk table
 * @param chunk_rowid rowid of the chunk to calculate on
 * @param b pre-allocated and zero'd out bitmap to write results to
 * @param size size of the chunk
 * @return int SQLITE_OK on success, error code otherwise
 */

func Xvec0_token_next

func Xvec0_token_next(tls *libc.TLS, start uintptr, end uintptr, out uintptr) (r int32)

func Xvec0_write_metadata_value added in v0.0.38

func Xvec0_write_metadata_value(tls *libc.TLS, p uintptr, metadata_column_idx int32, rowid Ti64, chunk_id Ti64, chunk_offset Ti64, v uintptr, isupdate int32) (r int32)

func Xvec_type_name

func Xvec_type_name(tls *libc.TLS, elementType _VectorElementType) (r uintptr)

func Xvector_cleanup_noop

func Xvector_cleanup_noop(tls *libc.TLS, _1 uintptr)

func Xvector_from_value

func Xvector_from_value(tls *libc.TLS, value uintptr, vector uintptr, dimensions uintptr, element_type uintptr, cleanup uintptr, pzErrorMessage uintptr) (r int32)

C documentation

/**
 * @brief Extract a vector from a sqlite3_value. Can be a float32, int8, or bit
 * vector.
 *
 * @param value: the sqlite3_value to read from.
 * @param vector: Output pointer to vector data.
 * @param dimensions: Output number of dimensions
 * @param dimensions: Output vector element type
 * @param cleanup
 * @param pzErrorMessage
 * @return int SQLITE_OK on success, error code otherwise
 */

func Xvector_subtype_name

func Xvector_subtype_name(tls *libc.TLS, subtype int32) (r uintptr)

func Xvtab_set_error

func Xvtab_set_error(tls *libc.TLS, pVTab uintptr, zFormat uintptr, va uintptr)

Types

type TArray

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

type TFts5ExtensionApi

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 TFts5ExtensionApi1

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 TFts5PhraseIter

type TFts5PhraseIter = struct {
	Fa uintptr
	Fb uintptr
}

type TFts5PhraseIter1

type TFts5PhraseIter1 = struct {
	Fa uintptr
	Fb uintptr
}

type TNpyScanner

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

type TNpyToken

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

type TVec0AuxiliaryColumnDefinition added in v0.0.38

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

type TVec0MetadataColumnDefinition added in v0.0.38

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

type TVec0MetadataIn added in v0.0.38

type TVec0MetadataIn = struct {
	Fargv_idx     int32
	Fmetadata_idx int32
	Farray        TArray
}

a single `xxx in (...)` constraint on a metadata column. TEXT or INTEGER only for now.

type TVec0MetadataInTextEntry added in v0.0.38

type TVec0MetadataInTextEntry = struct {
	Fn       int32
	FzString uintptr
}

Array elements for `xxx in (...)` values for a text column. basically just a string

type TVec0PartitionColumnDefinition added in v0.0.38

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

type TVec0Scanner

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

type TVec0Token

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

type TVecNpyFile

type TVecNpyFile = struct {
	Fpath       uintptr
	FpathLength Tsize_t
}

type TVectorColumnDefinition

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

type T_G_fpos64_t

type T_G_fpos64_t = Tfpos_t
type T_IO_cookie_io_functions_t = Tcookie_io_functions_t

type Tcookie_io_functions_t

type Tcookie_io_functions_t = struct {
	Fread   uintptr
	Fwrite  uintptr
	Fseek   uintptr
	Fclose1 uintptr
}

type Tdiv_t

type Tdiv_t = struct {
	Fquot int32
	Frem  int32
}

type Tdouble_t

type Tdouble_t = float64

type Tf32

type Tf32 = float32

type Tfloat_t

type Tfloat_t = float32

type Tfpos_t

type Tfpos_t = struct {
	F__lldata [0]int64
	F__align  [0]float64
	F__opaque [16]int8
}

type Tfts5_api

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

type Tfts5_api1

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

type Tfts5_extension_function

type Tfts5_extension_function = uintptr

type Tfts5_tokenizer

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

type Tfts5_tokenizer1

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

type Tfts5_tokenizer_v2 added in v0.0.37

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

type Tfts5_tokenizer_v21 added in v0.0.37

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

type Tfvec_cleanup

type Tfvec_cleanup = uintptr

type Ti16

type Ti16 = int16

type Ti32

type Ti32 = int32

type Ti64

type Ti64 = int64

type Ti8

type Ti8 = int8

type Timaxdiv_t

type Timaxdiv_t = struct {
	Fquot Tintmax_t
	Frem  Tintmax_t
}

type Tint16_t

type Tint16_t = int16

type Tint32_t

type Tint32_t = int32

type Tint64_t

type Tint64_t = int64

type Tint8_t

type Tint8_t = int8

type Tint_fast16_t

type Tint_fast16_t = int32

type Tint_fast32_t

type Tint_fast32_t = int32

type Tint_fast64_t

type Tint_fast64_t = int64

type Tint_fast8_t

type Tint_fast8_t = int8

type Tint_least16_t

type Tint_least16_t = int16

type Tint_least32_t

type Tint_least32_t = int32

type Tint_least64_t

type Tint_least64_t = int64

type Tint_least8_t

type Tint_least8_t = int8

type Tintmax_t

type Tintmax_t = int64

type Tintptr_t

type Tintptr_t = int64

type Tldiv_t

type Tldiv_t = struct {
	Fquot int64
	Frem  int64
}

type Tlldiv_t

type Tlldiv_t = struct {
	Fquot int64
	Frem  int64
}

type Tlocale_t

type Tlocale_t = uintptr

type Toff_t

type Toff_t = int64

type Tsbe_query_knn_data

type Tsbe_query_knn_data = struct {
	Fk           Ti64
	Fk_used      Ti64
	Frowids      uintptr
	Fdistances   uintptr
	Fcurrent_idx Ti64
}

type Tsize_t

type Tsize_t = uint64

func Xvector_byte_size

func Xvector_byte_size(tls *libc.TLS, element_type _VectorElementType, dimensions Tsize_t) (r Tsize_t)

func Xvector_column_byte_size

func Xvector_column_byte_size(tls *libc.TLS, column TVectorColumnDefinition) (r Tsize_t)

type Tsqlite3_callback

type Tsqlite3_callback = uintptr

type Tsqlite3_destructor_type

type Tsqlite3_destructor_type = uintptr

type Tsqlite3_file

type Tsqlite3_file = struct {
	FpMethods uintptr
}

type Tsqlite3_file1

type Tsqlite3_file1 = struct {
	FpMethods uintptr
}

type Tsqlite3_filename

type Tsqlite3_filename = uintptr

type Tsqlite3_index_constraint

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

type Tsqlite3_index_constraint_usage

type Tsqlite3_index_constraint_usage = struct {
	FargvIndex int32
	Fomit      uint8
}

type Tsqlite3_index_info

type Tsqlite3_index_info = 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 Tsqlite3_index_info1

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 Tsqlite3_index_orderby

type Tsqlite3_index_orderby = struct {
	FiColumn int32
	Fdesc    uint8
}

type Tsqlite3_int64

type Tsqlite3_int64 = int64

type Tsqlite3_io_methods

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_io_methods1

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 Tsqlite3_mem_methods

type Tsqlite3_mem_methods = struct {
	FxMalloc   uintptr
	FxFree     uintptr
	FxRealloc  uintptr
	FxSize     uintptr
	FxRoundup  uintptr
	FxInit     uintptr
	FxShutdown uintptr
	FpAppData  uintptr
}

type Tsqlite3_mem_methods1

type Tsqlite3_mem_methods1 = struct {
	FxMalloc   uintptr
	FxFree     uintptr
	FxRealloc  uintptr
	FxSize     uintptr
	FxRoundup  uintptr
	FxInit     uintptr
	FxShutdown uintptr
	FpAppData  uintptr
}

type Tsqlite3_module

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_module1

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 Tsqlite3_mutex_methods

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_mutex_methods1

type Tsqlite3_mutex_methods1 = struct {
	FxMutexInit    uintptr
	FxMutexEnd     uintptr
	FxMutexAlloc   uintptr
	FxMutexFree    uintptr
	FxMutexEnter   uintptr
	FxMutexTry     uintptr
	FxMutexLeave   uintptr
	FxMutexHeld    uintptr
	FxMutexNotheld uintptr
}

type Tsqlite3_pcache_methods

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_methods1

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 Tsqlite3_pcache_methods2

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_methods21

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 Tsqlite3_pcache_page

type Tsqlite3_pcache_page = struct {
	FpBuf   uintptr
	FpExtra uintptr
}

type Tsqlite3_pcache_page1

type Tsqlite3_pcache_page1 = struct {
	FpBuf   uintptr
	FpExtra uintptr
}

type Tsqlite3_rtree_dbl

type Tsqlite3_rtree_dbl = float64

type Tsqlite3_rtree_geometry

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

type Tsqlite3_rtree_geometry1

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

type Tsqlite3_rtree_query_info

type Tsqlite3_rtree_query_info = 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 Tsqlite3_rtree_query_info1

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 Tsqlite3_snapshot

type Tsqlite3_snapshot = struct {
	Fhidden [48]uint8
}

type Tsqlite3_syscall_ptr

type Tsqlite3_syscall_ptr = uintptr

type Tsqlite3_uint64

type Tsqlite3_uint64 = uint64

type Tsqlite3_vfs

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_vfs1

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 Tsqlite3_vtab

type Tsqlite3_vtab = struct {
	FpModule uintptr
	FnRef    int32
	FzErrMsg uintptr
}

type Tsqlite3_vtab1

type Tsqlite3_vtab1 = struct {
	FpModule uintptr
	FnRef    int32
	FzErrMsg uintptr
}

type Tsqlite3_vtab_cursor

type Tsqlite3_vtab_cursor = struct {
	FpVtab uintptr
}

type Tsqlite3_vtab_cursor1

type Tsqlite3_vtab_cursor1 = struct {
	FpVtab uintptr
}

type Tsqlite_int64

type Tsqlite_int64 = int64

type Tsqlite_uint64

type Tsqlite_uint64 = uint64

type Tssize_t

type Tssize_t = int64

type Tstatic_blob

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

type Tstatic_blob1

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

type Tstatic_blob_definition

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

type Tu32

type Tu32 = uint32

type Tu64

type Tu64 = uint64

type Tu8

type Tu8 = uint8

type Tuint16_t

type Tuint16_t = uint16

type Tuint32_t

type Tuint32_t = uint32

type Tuint64_t

type Tuint64_t = uint64

type Tuint8_t

type Tuint8_t = uint8

type Tuint_fast16_t

type Tuint_fast16_t = uint32

type Tuint_fast32_t

type Tuint_fast32_t = uint32

type Tuint_fast64_t

type Tuint_fast64_t = uint64

type Tuint_fast8_t

type Tuint_fast8_t = uint8

type Tuint_least16_t

type Tuint_least16_t = uint16

type Tuint_least32_t

type Tuint_least32_t = uint32

type Tuint_least64_t

type Tuint_least64_t = uint64

type Tuint_least8_t

type Tuint_least8_t = uint8

type Tuintmax_t

type Tuintmax_t = uint64

type Tuintptr_t

type Tuintptr_t = uint64

type Tusize

type Tusize = uint64

type Tva_list

type Tva_list = uintptr

type Tvec0_cursor

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

type Tvec0_cursor1

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

type Tvec0_idxstr_kind added in v0.0.38

type Tvec0_idxstr_kind = 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_metadata_column_kind added in v0.0.38

type Tvec0_metadata_column_kind = int32

type Tvec0_metadata_operator added in v0.0.38

type Tvec0_metadata_operator = int32

type Tvec0_partition_operator added in v0.0.38

type Tvec0_partition_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_query_fullscan_data

type Tvec0_query_fullscan_data = struct {
	Frowids_stmt uintptr
	Fdone        Ti8
}

type Tvec0_query_knn_data

type Tvec0_query_knn_data = struct {
	Fk           Ti64
	Fk_used      Ti64
	Frowids      uintptr
	Fdistances   uintptr
	Fcurrent_idx Ti64
}

type Tvec0_query_plan

type Tvec0_query_plan = int32

type Tvec0_query_point_data

type Tvec0_query_point_data = struct {
	Frowid   Ti64
	Fvectors [16]uintptr
	Fdone    int32
}

type Tvec0_user_column_kind added in v0.0.38

type Tvec0_user_column_kind = int32

type Tvec0_vtab

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 Tvec0_vtab1

type Tvec0_vtab1 = 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_cursor

type Tvec_each_cursor = struct {
	Fbase        Tsqlite3_vtab_cursor
	FiRowid      Ti64
	Fvector_type _VectorElementType
	Fvector      uintptr
	Fdimensions  Tsize_t
	Fcleanup     Tvector_cleanup
}

type Tvec_each_cursor1

type Tvec_each_cursor1 = struct {
	Fbase        Tsqlite3_vtab_cursor
	FiRowid      Ti64
	Fvector_type _VectorElementType
	Fvector      uintptr
	Fdimensions  Tsize_t
	Fcleanup     Tvector_cleanup
}

type Tvec_each_vtab

type Tvec_each_vtab = struct {
	Fbase Tsqlite3_vtab
}

type Tvec_each_vtab1

type Tvec_each_vtab1 = struct {
	Fbase Tsqlite3_vtab
}

type Tvec_npy_each_cursor

type Tvec_npy_each_cursor = struct {
	Fbase              Tsqlite3_vtab_cursor
	FiRowid            Ti64
	FelementType       _VectorElementType
	FnElements         Tsize_t
	FnDimensions       Tsize_t
	Finput_type        Tvec_npy_each_input_type
	Fvector            uintptr
	Ffile              uintptr
	FchunksBuffer      uintptr
	FchunksBufferSize  Tsize_t
	FmaxChunks         Tsize_t
	FcurrentChunkIndex Tsize_t
	FcurrentChunkSize  Tsize_t
	Feof               int32
}

type Tvec_npy_each_cursor1

type Tvec_npy_each_cursor1 = struct {
	Fbase              Tsqlite3_vtab_cursor
	FiRowid            Ti64
	FelementType       _VectorElementType
	FnElements         Tsize_t
	FnDimensions       Tsize_t
	Finput_type        Tvec_npy_each_input_type
	Fvector            uintptr
	Ffile              uintptr
	FchunksBuffer      uintptr
	FchunksBufferSize  Tsize_t
	FmaxChunks         Tsize_t
	FcurrentChunkIndex Tsize_t
	FcurrentChunkSize  Tsize_t
	Feof               int32
}

type Tvec_npy_each_input_type

type Tvec_npy_each_input_type = int32

type Tvec_npy_each_vtab

type Tvec_npy_each_vtab = struct {
	Fbase Tsqlite3_vtab
}

type Tvec_npy_each_vtab1

type Tvec_npy_each_vtab1 = struct {
	Fbase Tsqlite3_vtab
}

type Tvec_sbe_query_plan

type Tvec_sbe_query_plan = int32

type Tvec_static_blob_data

type Tvec_static_blob_data = struct {
	Fstatic_blobs [16]Tstatic_blob
}

type Tvec_static_blob_data1

type Tvec_static_blob_data1 = struct {
	Fstatic_blobs [16]Tstatic_blob
}

type Tvec_static_blob_entries_cursor

type Tvec_static_blob_entries_cursor = struct {
	Fbase       Tsqlite3_vtab_cursor
	FiRowid     Tsqlite3_int64
	Fquery_plan Tvec_sbe_query_plan
	Fknn_data   uintptr
}

type Tvec_static_blob_entries_cursor1

type Tvec_static_blob_entries_cursor1 = struct {
	Fbase       Tsqlite3_vtab_cursor
	FiRowid     Tsqlite3_int64
	Fquery_plan Tvec_sbe_query_plan
	Fknn_data   uintptr
}

type Tvec_static_blob_entries_vtab

type Tvec_static_blob_entries_vtab = struct {
	Fbase Tsqlite3_vtab
	Fblob uintptr
}

type Tvec_static_blob_entries_vtab1

type Tvec_static_blob_entries_vtab1 = struct {
	Fbase Tsqlite3_vtab
	Fblob uintptr
}

type Tvec_static_blobs_cursor

type Tvec_static_blobs_cursor = struct {
	Fbase   Tsqlite3_vtab_cursor
	FiRowid Tsqlite3_int64
}

type Tvec_static_blobs_cursor1

type Tvec_static_blobs_cursor1 = struct {
	Fbase   Tsqlite3_vtab_cursor
	FiRowid Tsqlite3_int64
}

type Tvec_static_blobs_vtab

type Tvec_static_blobs_vtab = struct {
	Fbase Tsqlite3_vtab
	Fdata uintptr
}

type Tvec_static_blobs_vtab1

type Tvec_static_blobs_vtab1 = struct {
	Fbase Tsqlite3_vtab
	Fdata uintptr
}

type Tvector_cleanup

type Tvector_cleanup = uintptr

type Twchar_t

type Twchar_t = int32

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL