GCC Code Coverage Report


Directory: src/
File: src/standalone/vec32_source.c
Date: 2026-10-23 09:17:32
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 189264 array_source_next(
14 Vec32Source *src,
15 uint32_t stride,
16 const float **vec_out,
17 uint32_t *id_out)
18 {
19 189264 VsArraySource *as = (VsArraySource *)src;
20
2/2
✓ Branch 0 taken 102 times.
✓ Branch 1 taken 189162 times.
189264 if (as->pos >= src->nvecs)
21 102 return false;
22 189162 *id_out = as->pos;
23 189162 *vec_out = as->data + (size_t)as->pos * src->dim;
24 189162 as->pos += stride;
25 189162 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 108 vs_array_source_init(
37 VsArraySource *src, const float *data, uint32_t nvecs, uint32_t dim)
38 {
39 108 src->base.next = array_source_next;
40 108 src->base.reset = array_source_reset;
41 108 src->base.read_all = NULL;
42 108 src->base.nvecs = nvecs;
43 108 src->base.dim = dim;
44 108 src->data = data;
45 108 src->pos = 0;
46 108 }
47