GCC Code Coverage Report


Directory: src/
File: src/standalone/vec32_source.c
Date: 2026-09-30 11:11:31
Exec Total Coverage
Lines: 17 21 81.0%
Functions: 2 3 66.7%
Branches: 2 2 100.0%

Line Branch Exec Source
1 /*
2 * Copyright (c) 2026 Tiger Data, Inc.
3 * Licensed under the PostgreSQL License. See LICENSE for details.
4 *
5 * vec32_source.c - Array-backed vector source implementation
6 */
7
8 #include <stddef.h>
9
10 #include "standalone/vec32_source.h"
11
12 static bool
13 181858 array_source_next(
14 Vec32Source *src,
15 uint32_t stride,
16 const float **vec_out,
17 uint32_t *id_out)
18 {
19 181858 VsArraySource *as = (VsArraySource *)src;
20
2/2
✓ Branch 0 taken 96 times.
✓ Branch 1 taken 181762 times.
181858 if (as->pos >= src->nvecs)
21 96 return false;
22 181762 *id_out = as->pos;
23 181762 *vec_out = as->data + (size_t)as->pos * src->dim;
24 181762 as->pos += stride;
25 181762 return true;
26 }
27
28 static void
29 ✗ array_source_reset(Vec32Source *src)
30 {
31 ✗ VsArraySource *as = (VsArraySource *)src;
32 ✗ as->pos = 0;
33 ✗ }
34
35 void
36 102 vs_array_source_init(
37 VsArraySource *src, const float *data, uint32_t nvecs, uint32_t dim)
38 {
39 102 src->base.next = array_source_next;
40 102 src->base.reset = array_source_reset;
41 102 src->base.read_all = NULL;
42 102 src->base.nvecs = nvecs;
43 102 src->base.dim = dim;
44 102 src->data = data;
45 102 src->pos = 0;
46 102 }
47