Skip to content

Commit b088df9

Browse files
vlaskyclaude
andcommitted
Fix all compilation warnings
Fixes 13 compilation warnings including 1 critical bug: Critical fix: - Line 6509: Changed metadataInIdx from size_t to int to fix logic bug where -1 wrapped to SIZE_MAX, causing error check to always fail Sign comparison fixes: - Line 6282: Added size_t casts for assert comparison - Lines 6810, 6814: Cast sizeof results to int - Line 7189: Cast sizeof result to i64 - Line 7445: Cast strlen result to int in assert Uninitialized variable fixes: - Line 7283: Initialize result to 0.0f - Lines 8439-8440: Initialize n and offset to 0, add default case Build now produces zero warnings. All tests pass. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 12dc66a commit b088df9

1 file changed

Lines changed: 11 additions & 9 deletions

File tree

sqlite-vec.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6279,7 +6279,7 @@ int vec0_metadata_filter_text(vec0_vtab * p, sqlite3_value * value, const void *
62796279
return rc;
62806280
}
62816281
assert(sqlite3_blob_bytes(rowidsBlob) % sizeof(i64) == 0);
6282-
assert((sqlite3_blob_bytes(rowidsBlob) / sizeof(i64)) == size);
6282+
assert((size_t)(sqlite3_blob_bytes(rowidsBlob) / sizeof(i64)) == (size_t)size);
62836283

62846284
rowids = sqlite3_malloc(sqlite3_blob_bytes(rowidsBlob));
62856285
if(!rowids) {
@@ -6506,7 +6506,7 @@ int vec0_metadata_filter_text(vec0_vtab * p, sqlite3_value * value, const void *
65066506
}
65076507

65086508
case VEC0_METADATA_OPERATOR_IN: {
6509-
size_t metadataInIdx = -1;
6509+
int metadataInIdx = -1;
65106510
for(size_t i = 0; i < aMetadataIn->length; i++) {
65116511
struct Vec0MetadataIn * metadataIn = &(((struct Vec0MetadataIn *) aMetadataIn->z)[i]);
65126512
if(metadataIn->argv_idx == argv_idx) {
@@ -6807,11 +6807,11 @@ int vec0_set_metadata_filter_bitmap(
68076807
break;
68086808
}
68096809
case VEC0_METADATA_COLUMN_KIND_INTEGER: {
6810-
szMatch = blobSize == size * sizeof(i64);
6810+
szMatch = blobSize == (int)(size * sizeof(i64));
68116811
break;
68126812
}
68136813
case VEC0_METADATA_COLUMN_KIND_FLOAT: {
6814-
szMatch = blobSize == size * sizeof(double);
6814+
szMatch = blobSize == (int)(size * sizeof(double));
68156815
break;
68166816
}
68176817
case VEC0_METADATA_COLUMN_KIND_TEXT: {
@@ -7186,7 +7186,7 @@ int vec0Filter_knn_chunks_iter(vec0_vtab *p, sqlite3_stmt *stmtChunks,
71867186

71877187
i64 *chunkRowids = (i64 *)sqlite3_column_blob(stmtChunks, 2);
71887188
i64 rowidsSize = sqlite3_column_bytes(stmtChunks, 2);
7189-
if (rowidsSize != p->chunk_size * sizeof(i64)) {
7189+
if (rowidsSize != (i64)(p->chunk_size * sizeof(i64))) {
71907190
// IMP: V02796_19635
71917191
vtab_set_error(&p->base, "rowids size doesn't match");
71927192
vtab_set_error(
@@ -7280,7 +7280,7 @@ int vec0Filter_knn_chunks_iter(vec0_vtab *p, sqlite3_stmt *stmtChunks,
72807280
continue;
72817281
};
72827282

7283-
f32 result;
7283+
f32 result = 0.0f;
72847284
switch (vector_column->element_type) {
72857285
case SQLITE_VEC_ELEMENT_TYPE_FLOAT32: {
72867286
const f32 *base_i =
@@ -7442,7 +7442,7 @@ int vec0Filter_knn_chunks_iter(vec0_vtab *p, sqlite3_stmt *stmtChunks,
74427442

74437443
int vec0Filter_knn(vec0_cursor *pCur, vec0_vtab *p, int idxNum,
74447444
const char *idxStr, int argc, sqlite3_value **argv) {
7445-
assert(argc == (strlen(idxStr)-1) / 4);
7445+
assert(argc == (int)((strlen(idxStr)-1) / 4));
74467446
int rc;
74477447
struct vec0_query_knn_data *knn_data;
74487448

@@ -8436,8 +8436,8 @@ static int
84368436
vec0_write_vector_to_vector_blob(sqlite3_blob *blobVectors, i64 chunk_offset,
84378437
const void *bVector, size_t dimensions,
84388438
enum VectorElementType element_type) {
8439-
int n;
8440-
int offset;
8439+
int n = 0;
8440+
int offset = 0;
84418441

84428442
switch (element_type) {
84438443
case SQLITE_VEC_ELEMENT_TYPE_FLOAT32:
@@ -8452,6 +8452,8 @@ vec0_write_vector_to_vector_blob(sqlite3_blob *blobVectors, i64 chunk_offset,
84528452
n = dimensions / CHAR_BIT;
84538453
offset = chunk_offset * dimensions / CHAR_BIT;
84548454
break;
8455+
default:
8456+
return SQLITE_ERROR;
84558457
}
84568458

84578459
return sqlite3_blob_write(blobVectors, bVector, n, offset);

0 commit comments

Comments
 (0)