Skip to content

Commit 92c7a0e

Browse files
committed
Fix handling of filter_mask in unnest function
1 parent 93fc3c2 commit 92c7a0e

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

vops.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ typedef struct {
166166
TupleDesc desc;
167167
int n_attrs;
168168
int tile_pos;
169+
uint64 filter_mask;
169170
vops_tile_hdr** tiles;
170171
} vops_unnest_context;
171172

@@ -2494,7 +2495,9 @@ Datum vops_unnest(PG_FUNCTION_ARGS)
24942495
func_ctx->user_fctx = user_ctx;
24952496
user_ctx->n_attrs = n_attrs;
24962497
user_ctx->tile_pos = 0;
2497-
2498+
user_ctx->filter_mask = filter_mask;
2499+
filter_mask = ~0;
2500+
24982501
for (i = 0; i < n_attrs; i++) {
24992502
Form_pg_attribute attr = src_desc->attrs[i];
25002503
vops_type tid = vops_get_type(attr->atttypid);
@@ -2521,7 +2524,8 @@ Datum vops_unnest(PG_FUNCTION_ARGS)
25212524
n_attrs = user_ctx->n_attrs;
25222525

25232526
for (j = user_ctx->tile_pos; j < TILE_SIZE; j++) {
2524-
if (filter_mask & ((uint64)1 << j)) {
2527+
if (user_ctx->filter_mask & ((uint64)1 << j))
2528+
{
25252529
for (i = 0; i < n_attrs; i++) {
25262530
if (user_ctx->types[i] != VOPS_LAST) {
25272531
vops_tile_hdr* tile = user_ctx->tiles[i];

vops.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ <h2><a name="performance">Performance evaluation</a></h2>
799799
Now most interesting thing: compare performance results on original table and using vector operations on VOPS projection.
800800
All measurements were performed at desktop with 16Gb of RAM and quad-core i7-4770 CPU @ 3.40GHz processor with enabled hyper-threading.
801801
Data set for benchmark was generated by dbgen utility included in TPC-H benchmark.
802-
Scale factor is 100 which corresponds to about 8Gb database. It can completely fit in memory,
802+
Scale factor is 10 which corresponds to about 8Gb database. It can completely fit in memory,
803803
so we are measuring best query execution time for <i>warm</i> data.
804804
Postgres was configured with shared buffer size equal to 8Gb.
805805
For each query we measured time of sequential and parallel execution with 8 parallel workers.

0 commit comments

Comments
 (0)