enh:[TD-32459] Abstract function properties into a struct.

This commit is contained in:
Jing Sima 2024-10-24 15:07:10 +08:00
parent c26ab17f19
commit 5f7dbde47f
3 changed files with 605 additions and 877 deletions

View File

@ -31,10 +31,10 @@ typedef EFuncDataRequired (*FFuncDynDataRequired)(void* pRes, SDataBlockInfo* pB
typedef EFuncReturnRows (*FEstimateReturnRows)(SFunctionNode* pFunc);
#define MAX_FUNC_PARA_NUM 16
#define MAX_FUNC_PARA_FIXED_VALUE_NUM 16
typedef struct SParamRange {
double dMinVal;
double dMaxVal;
int64_t iMinVal;
int64_t iMaxVal;
} SParamRange;
typedef struct SParamInfo {
@ -43,17 +43,11 @@ typedef struct SParamInfo {
int8_t endParam;
uint64_t validDataType;
uint64_t validNodeType;
bool hasRange;
bool isTs; // used for input parameter
bool isPK; // used for input parameter
bool isFixedValue; // used for input parameter
bool hasColumn; // used for input parameter, parameter must contain columns
bool isFirstLast; // special check for first and last
bool isTimeUnit; // used for input parameter, need check whether time unit is valid
bool isHistogramBin; // used for input parameter, need check whether histogram bin is valid
uint64_t paramAttribute;
uint8_t valueRangeFlag; // 0 for no range and no fixed value, 1 for value has range, 2 for fixed value
uint8_t fixedValueSize;
char fixedStrValue[MAX_FUNC_PARA_NUM][16]; // used for input parameter
int32_t fixedNumValue[MAX_FUNC_PARA_NUM]; // used for input parameter
char* fixedStrValue[MAX_FUNC_PARA_FIXED_VALUE_NUM]; // used for input parameter
int64_t fixedNumValue[MAX_FUNC_PARA_FIXED_VALUE_NUM]; // used for input parameter
SParamRange range;
} SParamInfo;

View File

@ -102,7 +102,16 @@ extern "C" {
#define FUNC_PARAM_SUPPORT_COLUMN_NODE FUNC_MGT_FUNC_PARAM_SUPPORT_NODE(6)
#define FUNC_PARAM_SUPPORT_NOT_VALUE_NODE FUNC_MGT_FUNC_PARAM_SUPPORT_NODE(7)
#define FUNC_PARAM_SUPPORT_NODE_MAX 7
#define FUNC_PARAM_NO_SPECIFIC_ATTRIBUTE 0
#define FUNC_PARAM_MUST_BE_PRIMTS 1
#define FUNC_PARAM_MUST_BE_PK 2
#define FUNC_PARAM_MUST_HAVE_COLUMN 3
#define FUNC_PARAM_MUST_BE_TIME_UNIT 4
#define FUNC_PARAM_VALUE_NODE_NOT_NULL 5
#define FUNC_PARAM_NO_SPECIFIC_VALUE 0
#define FUNC_PARAM_HAS_RANGE 1
#define FUNC_PARAM_HAS_FIXED_VALUE 2
#define FUNC_ERR_RET(c) \
do { \

File diff suppressed because it is too large Load Diff