[TD-292] fix bug while columns too large
This commit is contained in:
parent
d3d8ad5ec6
commit
4214f526b3
|
@ -195,7 +195,7 @@ static int32_t mgmtChildTableActionUpdate(SSdbOper *pOper) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t mgmtChildTableActionEncode(SSdbOper *pOper) {
|
static int32_t mgmtChildTableActionEncode(SSdbOper *pOper) {
|
||||||
const int32_t maxRowSize = sizeof(SChildTableObj) + sizeof(SSchema) * TSDB_MAX_COLUMNS;
|
const int32_t maxRowSize = sizeof(SChildTableObj) + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16);
|
||||||
SChildTableObj *pTable = pOper->pObj;
|
SChildTableObj *pTable = pOper->pObj;
|
||||||
assert(pTable != NULL && pOper->rowData != NULL);
|
assert(pTable != NULL && pOper->rowData != NULL);
|
||||||
|
|
||||||
|
@ -337,7 +337,7 @@ static int32_t mgmtInitChildTables() {
|
||||||
.tableId = SDB_TABLE_CTABLE,
|
.tableId = SDB_TABLE_CTABLE,
|
||||||
.tableName = "ctables",
|
.tableName = "ctables",
|
||||||
.hashSessions = tsMaxTables,
|
.hashSessions = tsMaxTables,
|
||||||
.maxRowSize = sizeof(SChildTableObj) + sizeof(SSchema) * TSDB_MAX_COLUMNS,
|
.maxRowSize = sizeof(SChildTableObj) + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16),
|
||||||
.refCountPos = (int8_t *)(&tObj.refCount) - (int8_t *)&tObj,
|
.refCountPos = (int8_t *)(&tObj.refCount) - (int8_t *)&tObj,
|
||||||
.keyType = SDB_KEY_STRING,
|
.keyType = SDB_KEY_STRING,
|
||||||
.insertFp = mgmtChildTableActionInsert,
|
.insertFp = mgmtChildTableActionInsert,
|
||||||
|
@ -440,7 +440,7 @@ static int32_t mgmtSuperTableActionUpdate(SSdbOper *pOper) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t mgmtSuperTableActionEncode(SSdbOper *pOper) {
|
static int32_t mgmtSuperTableActionEncode(SSdbOper *pOper) {
|
||||||
const int32_t maxRowSize = sizeof(SChildTableObj) + sizeof(SSchema) * TSDB_MAX_COLUMNS;
|
const int32_t maxRowSize = sizeof(SChildTableObj) + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16);
|
||||||
|
|
||||||
SSuperTableObj *pStable = pOper->pObj;
|
SSuperTableObj *pStable = pOper->pObj;
|
||||||
assert(pOper->pObj != NULL && pOper->rowData != NULL);
|
assert(pOper->pObj != NULL && pOper->rowData != NULL);
|
||||||
|
@ -491,7 +491,7 @@ static int32_t mgmtInitSuperTables() {
|
||||||
.tableId = SDB_TABLE_STABLE,
|
.tableId = SDB_TABLE_STABLE,
|
||||||
.tableName = "stables",
|
.tableName = "stables",
|
||||||
.hashSessions = TSDB_MAX_SUPER_TABLES,
|
.hashSessions = TSDB_MAX_SUPER_TABLES,
|
||||||
.maxRowSize = tsSuperTableUpdateSize + sizeof(SSchema) * TSDB_MAX_COLUMNS,
|
.maxRowSize = tsSuperTableUpdateSize + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16),
|
||||||
.refCountPos = (int8_t *)(&tObj.refCount) - (int8_t *)&tObj,
|
.refCountPos = (int8_t *)(&tObj.refCount) - (int8_t *)&tObj,
|
||||||
.keyType = SDB_KEY_STRING,
|
.keyType = SDB_KEY_STRING,
|
||||||
.insertFp = mgmtSuperTableActionInsert,
|
.insertFp = mgmtSuperTableActionInsert,
|
||||||
|
@ -1216,7 +1216,7 @@ static int32_t mgmtSetSchemaFromSuperTable(SSchema *pSchema, SSuperTableObj *pTa
|
||||||
|
|
||||||
static void mgmtGetSuperTableMeta(SQueuedMsg *pMsg) {
|
static void mgmtGetSuperTableMeta(SQueuedMsg *pMsg) {
|
||||||
SSuperTableObj *pTable = (SSuperTableObj *)pMsg->pTable;
|
SSuperTableObj *pTable = (SSuperTableObj *)pMsg->pTable;
|
||||||
STableMetaMsg *pMeta = rpcMallocCont(sizeof(STableMetaMsg) + sizeof(SSchema) * TSDB_MAX_COLUMNS);
|
STableMetaMsg *pMeta = rpcMallocCont(sizeof(STableMetaMsg) + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16));
|
||||||
pMeta->uid = htobe64(pTable->uid);
|
pMeta->uid = htobe64(pTable->uid);
|
||||||
pMeta->sversion = htons(pTable->sversion);
|
pMeta->sversion = htons(pTable->sversion);
|
||||||
pMeta->precision = pMsg->pDb->cfg.precision;
|
pMeta->precision = pMsg->pDb->cfg.precision;
|
||||||
|
@ -1731,7 +1731,7 @@ static void mgmtAutoCreateChildTable(SQueuedMsg *pMsg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mgmtGetChildTableMeta(SQueuedMsg *pMsg) {
|
static void mgmtGetChildTableMeta(SQueuedMsg *pMsg) {
|
||||||
STableMetaMsg *pMeta = rpcMallocCont(sizeof(STableMetaMsg) + sizeof(SSchema) * TSDB_MAX_COLUMNS);
|
STableMetaMsg *pMeta = rpcMallocCont(sizeof(STableMetaMsg) + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16));
|
||||||
if (pMeta == NULL) {
|
if (pMeta == NULL) {
|
||||||
mError("table:%s, failed to get table meta, no enough memory", pMsg->pTable->tableId);
|
mError("table:%s, failed to get table meta, no enough memory", pMsg->pTable->tableId);
|
||||||
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_SERV_OUT_OF_MEMORY);
|
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_SERV_OUT_OF_MEMORY);
|
||||||
|
@ -1979,7 +1979,7 @@ static void mgmtProcessMultiTableMetaMsg(SQueuedMsg *pMsg) {
|
||||||
if (pMsg->pDb == NULL) continue;
|
if (pMsg->pDb == NULL) continue;
|
||||||
|
|
||||||
int availLen = totalMallocLen - pMultiMeta->contLen;
|
int availLen = totalMallocLen - pMultiMeta->contLen;
|
||||||
if (availLen <= sizeof(STableMetaMsg) + sizeof(SSchema) * TSDB_MAX_COLUMNS) {
|
if (availLen <= sizeof(STableMetaMsg) + sizeof(SSchema) * (TSDB_MAX_TAGS + TSDB_MAX_COLUMNS + 16)) {
|
||||||
//TODO realloc
|
//TODO realloc
|
||||||
//totalMallocLen *= 2;
|
//totalMallocLen *= 2;
|
||||||
//pMultiMeta = rpcReMalloc(pMultiMeta, totalMallocLen);
|
//pMultiMeta = rpcReMalloc(pMultiMeta, totalMallocLen);
|
||||||
|
|
Loading…
Reference in New Issue