From aa81373feda4c6046505e302364c0a39269502a4 Mon Sep 17 00:00:00 2001 From: wpan Date: Mon, 5 Jul 2021 10:37:00 +0800 Subject: [PATCH] support bigint --- tests/script/sh/abs_max.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tests/script/sh/abs_max.c b/tests/script/sh/abs_max.c index 430f364c51..cd8ba0ff15 100644 --- a/tests/script/sh/abs_max.c +++ b/tests/script/sh/abs_max.c @@ -10,33 +10,34 @@ typedef struct SUdfInit{ int const_item; /* 0 if result is independent of arguments */ } SUdfInit; -#define TSDB_DATA_INT_NULL 0x80000000L +#define TSDB_DATA_INT_NULL 0x80000000L +#define TSDB_DATA_BIGINT_NULL 0x8000000000000000L void abs_max(char* data, short itype, short ibytes, int numOfRows, long long* ts, char* dataOutput, char* interBuf, char* tsOutput, int* numOfOutput, short otype, short obytes, SUdfInit* buf) { int i; int r = 0; printf("abs_max input data:%p, type:%d, rows:%d, ts:%p,%lld, dataoutput:%p, tsOutput:%p, numOfOutput:%p, buf:%p\n", data, itype, numOfRows, ts, *ts, dataOutput, tsOutput, numOfOutput, buf); - if (itype == 4) { - r=*(int *)dataOutput; + if (itype == 5) { + r=*(long *)dataOutput; *numOfOutput=0; for(i=0;i r) { r = v; } } - *(int *)dataOutput=r; + *(long *)dataOutput=r; - printf("abs_max out, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput); + printf("abs_max out, dataoutput:%ld, numOfOutput:%d\n", *(long *)dataOutput, *numOfOutput); } } @@ -47,31 +48,31 @@ void abs_max_finalize(char* dataOutput, char* interBuf, int* numOfOutput, SUdfIn int r = 0; printf("abs_max_finalize dataoutput:%p:%d, numOfOutput:%d, buf:%p\n", dataOutput, *dataOutput, *numOfOutput, buf); *numOfOutput=1; - printf("abs_max finalize, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput); + printf("abs_max finalize, dataoutput:%ld, numOfOutput:%d\n", *(long *)dataOutput, *numOfOutput); } void abs_max_merge(char* data, int32_t numOfRows, char* dataOutput, int32_t* numOfOutput, SUdfInit* buf) { int r = 0; if (numOfRows > 0) { - r = *((int*)data); + r = *((long *)data); } printf("abs_max_merge numOfRows:%d, dataoutput:%p, buf:%p\n", numOfRows, dataOutput, buf); for (int i = 1; i < numOfRows; ++i) { - printf("abs_max_merge %d - %d\n", i, *((int*)data + i)); - if (*((int*)data + i) > r) { - r= *((int*)data + i); + printf("abs_max_merge %d - %ld\n", i, *((long *)data + i)); + if (*((long*)data + i) > r) { + r= *((long*)data + i); } } - *(int*)dataOutput=r; + *(long*)dataOutput=r; if (numOfRows > 0) { *numOfOutput=1; } else { *numOfOutput=0; } - printf("abs_max_merge, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput); + printf("abs_max_merge, dataoutput:%ld, numOfOutput:%d\n", *(long *)dataOutput, *numOfOutput); }