提交 34b2f7b8 编写于 作者: D dapan1121

fix compile error

上级 00109279
......@@ -570,7 +570,7 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
if (lf.f == NULL) return errfile(L, "reopen", fnameindex);
/* skip eventual `#!...' */
while ((c = getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) ;
lf.extraline = 0;
lf.extraline = 0;
}
ungetc(c, lf.f);
status = lua_load(L, getF, &lf, lua_tostring(L, -1));
......
......@@ -107,7 +107,7 @@ int taosLoadScriptInit(SUdfInit* pInit) {
pInit->destroyCtxFunc = destroyScriptCtx;
ScriptCtx *pCtx = pInit->script_ctx;
char funcName[MAX_FUNC_NAME] = {0};
char funcName[MAX_FUNC_NAME + 10] = {0};
sprintf(funcName, "%s_init", pCtx->funcName);
lua_State* lua = pCtx->pEnv->lua_state;
......@@ -129,7 +129,7 @@ int taosLoadScriptNormal(char *pInput, int16_t iType, int16_t iBytes, int32_t nu
int16_t oType, int16_t oBytes, SUdfInit *pInit) {
ScriptCtx* pCtx = pInit->script_ctx;
char funcName[MAX_FUNC_NAME] = {0};
char funcName[MAX_FUNC_NAME + 10] = {0};
sprintf(funcName, "%s_add", pCtx->funcName);
lua_State* lua = pCtx->pEnv->lua_state;
lua_getglobal(lua, funcName);
......
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct SUdfInit{
int maybe_null; /* 1 if function can return NULL */
int decimals; /* for real functions */
long long length; /* For string functions */
char *ptr; /* free pointer for function data */
int const_item; /* 0 if result is independent of arguments */
} SUdfInit;
typedef struct SDemo{
double sum;
int num;
short otype;
}SDemo;
void demo(char* data, short itype, short ibytes, int numOfRows, long long* ts, char* dataOutput, char* tsOutput,
int* numOfOutput, short otype, short obytes, SUdfInit* buf) {
int i;
double r = 0;
SDemo *p = (SDemo *)buf->ptr;
printf("demo 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);
for(i=0;i<numOfRows;++i) {
if (itype == 6) {
r=*((float *)data+i);
} else if (itype == 7) {
r=*((double *)data+i);
}
p->sum += r*r;
}
p->otype = otype;
p->num += numOfRows;
*numOfOutput=1;
printf("demo out, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput);
}
void demo_finalize(char* dataOutput, int* numOfOutput, SUdfInit* buf) {
SDemo *p = (SDemo *)buf->ptr;
printf("demo_finalize dataoutput:%p, numOfOutput:%p, buf:%p\n", dataOutput, numOfOutput, buf);
if (p->otype == 6) {
*(float *)dataOutput = (float)(p->sum / p->num);
} else if (p->otype == 7) {
*(double *)dataOutput = (double)(p->sum / p->num);
}
*numOfOutput=1;
printf("demo finalize, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput);
}
int demo_init(SUdfInit* buf) {
buf->ptr = calloc(1, sizeof(SDemo));
printf("demo init\n");
return 0;
}
void demo_destroy(SUdfInit* buf) {
free(buf->ptr);
printf("demo destroy\n");
}
......@@ -10,12 +10,12 @@ typedef struct SUdfInit{
int const_item; /* 0 if result is independent of arguments */
} SUdfInit;
void sum_double(char* data, char type, int numOfRows, long long* ts, char* dataOutput, char* tsOutput,
int* numOfOutput, SUdfInit* buf) {
void sum_double(char* data, short itype, short ibytes, int numOfRows, long long* ts, char* dataOutput, char* tsOutput,
int* numOfOutput, short otype, short obytes, SUdfInit* buf) {
int i;
int r = 0;
printf("sum_double input data:%p, type:%d, rows:%d, ts:%p,%lld, dataoutput:%p, tsOutput:%p, numOfOutput:%p, buf:%p\n", data, type, numOfRows, ts, *ts, dataOutput, tsOutput, numOfOutput, buf);
if (type == 4) {
printf("sum_double 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;
for(i=0;i<numOfRows;++i) {
r+=*((int *)data + i);
......@@ -42,6 +42,23 @@ void sum_double_finalize(char* dataOutput, int* numOfOutput, SUdfInit* buf) {
printf("sum_double finalize, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput);
}
void sum_double_merge(char* dataOutput, int* numOfOutput, SUdfInit* buf) {
int r = 0;
int sum = 0;
printf("sum_double_merge dataoutput:%p, numOfOutput:%p, buf:%p\n", dataOutput, numOfOutput, buf);
for (int i = 0; i < *numOfOutput; ++i) {
printf("sum_double_merge %d - %d\n", i, *((int*)dataOutput + i));
sum +=*((int*)dataOutput + i);
}
*(int*)dataOutput=sum;
*numOfOutput=1;
printf("sum_double sum_double_merge, dataoutput:%d, numOfOutput:%d\n", *(int *)dataOutput, *numOfOutput);
}
int sum_double_init(SUdfInit* buf) {
buf->maybe_null=1;
buf->ptr = malloc(sizeof(int));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册