sync home office
This commit is contained in:
parent
22a97ca07e
commit
e9e6b1fa1f
|
@ -137,8 +137,8 @@ typedef int32_t (*TUdfTeardownFunc)();
|
|||
//typedef int32_t addVariableLengthColumnData(SColumnData *columnData, int rowIndex, bool isNull, int32_t dataLen, char * data);
|
||||
|
||||
typedef int32_t (*TUdfFreeUdfColumnFunc)(SUdfColumn* column);
|
||||
|
||||
typedef int32_t (*TUdfScalarProcFunc)(SUdfDataBlock block, SUdfColumn *resultCol);
|
||||
|
||||
typedef int32_t (*TUdfAggInitFunc)(SUdfInterBuf *buf);
|
||||
typedef int32_t (*TUdfAggProcessFunc)(SUdfDataBlock block, SUdfInterBuf *interBuf);
|
||||
typedef int32_t (*TUdfAggFinalizeFunc)(SUdfInterBuf buf, SUdfInterBuf *resultData);
|
||||
|
|
|
@ -51,6 +51,21 @@ target_link_libraries(
|
|||
udf1 PUBLIC os
|
||||
)
|
||||
|
||||
add_library(udf2 MODULE test/udf2.c)
|
||||
target_include_directories(
|
||||
udf1
|
||||
PUBLIC
|
||||
"${TD_SOURCE_DIR}/include/libs/function"
|
||||
"${TD_SOURCE_DIR}/include/util"
|
||||
"${TD_SOURCE_DIR}/include/common"
|
||||
"${TD_SOURCE_DIR}/include/client"
|
||||
"${TD_SOURCE_DIR}/include/os"
|
||||
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
||||
)
|
||||
target_link_libraries(
|
||||
udf2 PUBLIC os
|
||||
)
|
||||
|
||||
#SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/build/bin)
|
||||
add_executable(udfd src/udfd.c)
|
||||
target_include_directories(
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
#undef free
|
||||
#define free free
|
||||
|
||||
int32_t udf1_setup() {
|
||||
int32_t udf1_init() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t udf1_teardown() {
|
||||
int32_t udf1_destroy() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "tudf.h"
|
||||
|
||||
#undef malloc
|
||||
#define malloc malloc
|
||||
#undef free
|
||||
#define free free
|
||||
|
||||
int32_t udf2_init() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t udf2_destroy() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t udf2_start(SUdfInterBuf *buf) {
|
||||
|
||||
}
|
||||
|
||||
int32_t udf2(SUdfDataBlock block, SUdfInterBuf *interBuf) {
|
||||
|
||||
}
|
||||
|
||||
int32_t udf2_finish(SUdfInterBuf buf, SUdfInterBuf *resultData) {
|
||||
|
||||
}
|
||||
|
||||
int32_t udf2(SUdfDataBlock block, SUdfColumn *resultCol) {
|
||||
SUdfColumnData *resultData = &resultCol->colData;
|
||||
resultData->numOfRows = block.numOfRows;
|
||||
SUdfColumnData *srcData = &block.udfCols[0]->colData;
|
||||
resultData->varLengthColumn = srcData->varLengthColumn;
|
||||
|
||||
if (resultData->varLengthColumn) {
|
||||
resultData->varLenCol.varOffsetsLen = srcData->varLenCol.varOffsetsLen;
|
||||
resultData->varLenCol.varOffsets = malloc(resultData->varLenCol.varOffsetsLen);
|
||||
memcpy(resultData->varLenCol.varOffsets, srcData->varLenCol.varOffsets, srcData->varLenCol.varOffsetsLen);
|
||||
|
||||
resultData->varLenCol.payloadLen = srcData->varLenCol.payloadLen;
|
||||
resultData->varLenCol.payload = malloc(resultData->varLenCol.payloadLen);
|
||||
memcpy(resultData->varLenCol.payload, srcData->varLenCol.payload, srcData->varLenCol.payloadLen);
|
||||
} else {
|
||||
resultData->fixLenCol.nullBitmapLen = srcData->fixLenCol.nullBitmapLen;
|
||||
resultData->fixLenCol.nullBitmap = malloc(resultData->fixLenCol.nullBitmapLen);
|
||||
memcpy(resultData->fixLenCol.nullBitmap, srcData->fixLenCol.nullBitmap, srcData->fixLenCol.nullBitmapLen);
|
||||
|
||||
resultData->fixLenCol.dataLen = srcData->fixLenCol.dataLen;
|
||||
resultData->fixLenCol.data = malloc(resultData->fixLenCol.dataLen);
|
||||
memcpy(resultData->fixLenCol.data, srcData->fixLenCol.data, srcData->fixLenCol.dataLen);
|
||||
for (int32_t i = 0; i < resultData->numOfRows; ++i) {
|
||||
*(resultData->fixLenCol.data + i * sizeof(int32_t)) = 88;
|
||||
}
|
||||
}
|
||||
|
||||
SUdfColumnMeta *meta = &resultCol->colMeta;
|
||||
meta->bytes = 4;
|
||||
meta->type = TSDB_DATA_TYPE_INT;
|
||||
meta->scale = 0;
|
||||
meta->precision = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t udf2_free(SUdfColumn *col) {
|
||||
SUdfColumnData *data = &col->colData;
|
||||
if (data->varLengthColumn) {
|
||||
free(data->varLenCol.varOffsets);
|
||||
data->varLenCol.varOffsets = NULL;
|
||||
free(data->varLenCol.payload);
|
||||
data->varLenCol.payload = NULL;
|
||||
} else {
|
||||
free(data->fixLenCol.nullBitmap);
|
||||
data->fixLenCol.nullBitmap = NULL;
|
||||
free(data->fixLenCol.data);
|
||||
data->fixLenCol.data = NULL;
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue