improve log & memory allocation check
This commit is contained in:
parent
3b86cd1242
commit
ff7aec3b36
|
@ -540,7 +540,8 @@ static int32_t reconcileDBSchemas(TAOS* taos, SArray* stableSchemas) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t getChildTableName(TAOS_SML_DATA_POINT* point, char* tableName, int* tableNameLen) {
|
static int32_t getSmlMd5ChildTableName(TAOS_SML_DATA_POINT* point, char* tableName, int* tableNameLen) {
|
||||||
|
tscDebug("taos_sml_insert get child table name through md5");
|
||||||
qsort(point->tags, point->tagNum, sizeof(TAOS_SML_KV), compareSmlColKv);
|
qsort(point->tags, point->tagNum, sizeof(TAOS_SML_KV), compareSmlColKv);
|
||||||
|
|
||||||
SStringBuilder sb; memset(&sb, 0, sizeof(sb));
|
SStringBuilder sb; memset(&sb, 0, sizeof(sb));
|
||||||
|
@ -694,7 +695,7 @@ static int32_t arrangePointsByChildTableName(TAOS_SML_DATA_POINT* points, int nu
|
||||||
if (!point->childTableName) {
|
if (!point->childTableName) {
|
||||||
char childTableName[TSDB_TABLE_NAME_LEN];
|
char childTableName[TSDB_TABLE_NAME_LEN];
|
||||||
int32_t tableNameLen = TSDB_TABLE_NAME_LEN;
|
int32_t tableNameLen = TSDB_TABLE_NAME_LEN;
|
||||||
getChildTableName(point, childTableName, &tableNameLen);
|
getSmlMd5ChildTableName(point, childTableName, &tableNameLen);
|
||||||
point->childTableName = calloc(1, tableNameLen+1);
|
point->childTableName = calloc(1, tableNameLen+1);
|
||||||
strncpy(point->childTableName, childTableName, tableNameLen);
|
strncpy(point->childTableName, childTableName, tableNameLen);
|
||||||
point->childTableName[tableNameLen] = '\0';
|
point->childTableName[tableNameLen] = '\0';
|
||||||
|
@ -774,6 +775,10 @@ static int32_t insertPoints(TAOS* taos, TAOS_SML_DATA_POINT* points, int32_t num
|
||||||
point = taosArrayGetP(cTablePoints, i);
|
point = taosArrayGetP(cTablePoints, i);
|
||||||
|
|
||||||
TAOS_BIND* colBinds = calloc(numCols, sizeof(TAOS_BIND));
|
TAOS_BIND* colBinds = calloc(numCols, sizeof(TAOS_BIND));
|
||||||
|
if (colBinds == NULL) {
|
||||||
|
tscError("taos_sml_insert insert points, failed to allocated memory for TAOS_BIND, "
|
||||||
|
"num of rows: %zu, num of cols: %zu", rows, numCols);
|
||||||
|
}
|
||||||
for (int j = 0; j < numCols; ++j) {
|
for (int j = 0; j < numCols; ++j) {
|
||||||
TAOS_BIND* bind = colBinds + j;
|
TAOS_BIND* bind = colBinds + j;
|
||||||
bind->is_null = &isNullColBind;
|
bind->is_null = &isNullColBind;
|
||||||
|
@ -1815,8 +1820,27 @@ int32_t tscParseLines(char* lines[], int numLines, SArray* points, SArray* faile
|
||||||
|
|
||||||
int taos_insert_lines(TAOS* taos, char* lines[], int numLines) {
|
int taos_insert_lines(TAOS* taos, char* lines[], int numLines) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SArray* lpPoints = taosArrayInit(numLines, sizeof(TAOS_SML_DATA_POINT));
|
if (numLines <= 0) {
|
||||||
|
tscError("taos_insert_lines numLines should be greater than zero. numLines: %d", numLines);
|
||||||
|
code = TSDB_CODE_TSC_APP_ERROR;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < numLines; ++i) {
|
||||||
|
if (lines[i] == NULL) {
|
||||||
|
tscError("taos_insert_lines line %d is NULL", i);
|
||||||
|
code = TSDB_CODE_TSC_APP_ERROR;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SArray* lpPoints = taosArrayInit(numLines, sizeof(TAOS_SML_DATA_POINT));
|
||||||
|
if (lpPoints == NULL) {
|
||||||
|
tscError("taos_insert_lines failed to allocate memory");
|
||||||
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
tscDebug("taos_insert_lines begin inserting %d lines, first line: %s", numLines, lines[0]);
|
||||||
code = tscParseLines(lines, numLines, lpPoints, NULL);
|
code = tscParseLines(lines, numLines, lpPoints, NULL);
|
||||||
size_t numPoints = taosArrayGetSize(lpPoints);
|
size_t numPoints = taosArrayGetSize(lpPoints);
|
||||||
|
|
||||||
|
@ -1831,6 +1855,7 @@ int taos_insert_lines(TAOS* taos, char* lines[], int numLines) {
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
tscDebug("taos_insert_lines finish inserting %d lines. code: %d", numLines, code);
|
||||||
for (int i=0; i<numPoints; ++i) {
|
for (int i=0; i<numPoints; ++i) {
|
||||||
destroySmlDataPoint(points+i);
|
destroySmlDataPoint(points+i);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue