Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite21ce21

Browse files
author
Karina Litskevich
committed
[PGPRO-9881] Fix wrong type used for VOPS_INTERVAL
Tags: vops
1 parent69fd09b commite21ce21

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

‎vops.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3341,7 +3341,8 @@ Datum vops_agg_combine(PG_FUNCTION_ARGS)
33413341
switch (state1->agg_kinds[i]) {
33423342
caseVOPS_AGG_SUM:
33433343
caseVOPS_AGG_AVG:
3344-
if (state0->agg_type<VOPS_FLOAT4) {
3344+
Assert(state0->agg_type!=VOPS_TEXT);
3345+
if (is_vops_type_integer(state0->agg_type)) {
33453346
entry0->values[i].acc.i8+=entry1->values[i].acc.i8;
33463347
}else {
33473348
entry0->values[i].acc.f8+=entry1->values[i].acc.f8;
@@ -3495,12 +3496,14 @@ Datum vops_reduce(PG_FUNCTION_ARGS)
34953496
user_ctx->nulls[i]= false;
34963497
break;
34973498
caseVOPS_AGG_SUM:
3498-
user_ctx->elems[i]=Float8GetDatum((state->agg_type<VOPS_FLOAT4)
3499+
Assert(state->agg_type!=VOPS_TEXT);
3500+
user_ctx->elems[i]=Float8GetDatum(is_vops_type_integer(state->agg_type)
34993501
? (double)entry->values[i].acc.i8
35003502
:entry->values[i].acc.f8);
35013503
break;
35023504
caseVOPS_AGG_AVG:
3503-
user_ctx->elems[i]=Float8GetDatum(((state->agg_type<VOPS_FLOAT4)
3505+
Assert(state->agg_type!=VOPS_TEXT);
3506+
user_ctx->elems[i]=Float8GetDatum((is_vops_type_integer(state->agg_type)
35043507
? (double)entry->values[i].acc.i8
35053508
:entry->values[i].acc.f8)/entry->values[i].count);
35063509
break;

‎vops.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ typedef enum
2222
VOPS_LAST,
2323
}vops_type;
2424

25+
staticinlineboolis_vops_type_integer(vops_typetype)
26+
{
27+
returntype<VOPS_FLOAT4||type==VOPS_INTERVAL;
28+
}
29+
2530
typedefenum
2631
{
2732
VOPS_AGG_SUM,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp