File tree Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -166,6 +166,7 @@ typedef struct {
166
166
TupleDesc desc ;
167
167
int n_attrs ;
168
168
int tile_pos ;
169
+ uint64 filter_mask ;
169
170
vops_tile_hdr * * tiles ;
170
171
} vops_unnest_context ;
171
172
@@ -2494,7 +2495,9 @@ Datum vops_unnest(PG_FUNCTION_ARGS)
2494
2495
func_ctx -> user_fctx = user_ctx ;
2495
2496
user_ctx -> n_attrs = n_attrs ;
2496
2497
user_ctx -> tile_pos = 0 ;
2497
-
2498
+ user_ctx -> filter_mask = filter_mask ;
2499
+ filter_mask = ~0 ;
2500
+
2498
2501
for (i = 0 ; i < n_attrs ; i ++ ) {
2499
2502
Form_pg_attribute attr = src_desc -> attrs [i ];
2500
2503
vops_type tid = vops_get_type (attr -> atttypid );
@@ -2521,7 +2524,8 @@ Datum vops_unnest(PG_FUNCTION_ARGS)
2521
2524
n_attrs = user_ctx -> n_attrs ;
2522
2525
2523
2526
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
+ {
2525
2529
for (i = 0 ; i < n_attrs ; i ++ ) {
2526
2530
if (user_ctx -> types [i ] != VOPS_LAST ) {
2527
2531
vops_tile_hdr * tile = user_ctx -> tiles [i ];
Original file line number Diff line number Diff line change @@ -799,7 +799,7 @@ <h2><a name="performance">Performance evaluation</a></h2>
799
799
Now most interesting thing: compare performance results on original table and using vector operations on VOPS projection.
800
800
All measurements were performed at desktop with 16Gb of RAM and quad-core i7-4770 CPU @ 3.40GHz processor with enabled hyper-threading.
801
801
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,
803
803
so we are measuring best query execution time for < i > warm</ i > data.
804
804
Postgres was configured with shared buffer size equal to 8Gb.
805
805
For each query we measured time of sequential and parallel execution with 8 parallel workers.
You can’t perform that action at this time.
0 commit comments