add more
This commit is contained in:
parent
a614570ccf
commit
14bbe488c7
|
@ -51,18 +51,20 @@ void tdSetCol(STColumn *pCol, int8_t type, int16_t colId, int32_t bytes);
|
|||
|
||||
// ----------------- TSDB SCHEMA DEFINITION
|
||||
typedef struct {
|
||||
int32_t numOfCols;
|
||||
int32_t padding; // TODO: replace the padding for useful variable
|
||||
int numOfCols; // Number of columns appended
|
||||
int totalCols; // Total columns allocated
|
||||
STColumn columns[];
|
||||
} STSchema;
|
||||
|
||||
#define schemaNCols(s) ((s)->numOfCols)
|
||||
#define schemaTCols(s) ((s)->totalCols)
|
||||
#define schemaColAt(s, i) ((s)->columns + i)
|
||||
|
||||
STSchema *tdNewSchema(int32_t nCols);
|
||||
int tdSchemaAppendCol(STSchema *pSchema, int8_t type, int16_t colId, int16_t bytes);
|
||||
STSchema *tdDupSchema(STSchema *pSchema);
|
||||
void tdFreeSchema(STSchema *pSchema);
|
||||
void tdUpdateSchema(STSchema *pSchema);
|
||||
void tdFreeSchema(STSchema *pSchema);
|
||||
void tdUpdateSchema(STSchema *pSchema);
|
||||
|
||||
// ----------------- Data row structure
|
||||
|
||||
|
|
|
@ -89,13 +89,40 @@ void tdSetCol(STColumn *pCol, int8_t type, int16_t colId, int32_t bytes) {
|
|||
STSchema *tdNewSchema(int32_t nCols) {
|
||||
int32_t size = sizeof(STSchema) + sizeof(STColumn) * nCols;
|
||||
|
||||
STSchema *pSchema = (STSchema *)calloc(1, size);
|
||||
STSchema *pSchema = (STSchema *)malloc(size);
|
||||
if (pSchema == NULL) return NULL;
|
||||
pSchema->numOfCols = nCols;
|
||||
pSchema->numOfCols = 0;
|
||||
pSchema->totalCols = nCols;
|
||||
|
||||
return pSchema;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a column to the schema
|
||||
*/
|
||||
int tdSchemaAppendCol(STSchema *pSchema, int8_t type, int16_t colId, int16_t bytes) {
|
||||
if (pSchema->numOfCols >= pSchema->totalCols) return -1;
|
||||
if (!isValidDataType(type, 0)) return -1;
|
||||
|
||||
STColumn *pCol = schemaColAt(pSchema, schemaNCols(pSchema));
|
||||
colSetType(pCol, type);
|
||||
colSetColId(pCol, colId);
|
||||
colSetOffset(pCol, -1);
|
||||
switch (type) {
|
||||
case TSDB_DATA_TYPE_BINARY:
|
||||
case TSDB_DATA_TYPE_NCHAR:
|
||||
colSetBytes(pCol, bytes);
|
||||
break;
|
||||
default:
|
||||
colSetBytes(pCol, TYPE_BYTES[type]);
|
||||
break;
|
||||
}
|
||||
|
||||
pSchema->numOfCols++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the schema and return a new object
|
||||
*/
|
||||
|
|
|
@ -15,5 +15,5 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM))
|
|||
TARGET_LINK_LIBRARIES(tsdb common tutil)
|
||||
|
||||
# Someone has no gtest directory, so comment it
|
||||
#ADD_SUBDIRECTORY(tests)
|
||||
ADD_SUBDIRECTORY(tests)
|
||||
ENDIF ()
|
||||
|
|
|
@ -347,7 +347,7 @@ int tsdbInitTableCfg(STableCfg *config, TSDB_TABLE_TYPE type, int64_t uid, int32
|
|||
config->superUid = TSDB_INVALID_SUPER_TABLE_ID;
|
||||
config->tableId.uid = uid;
|
||||
config->tableId.tid = tid;
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,92 +3,36 @@
|
|||
|
||||
#include "tsdb.h"
|
||||
#include "dataformat.h"
|
||||
#include "tsdbMeta.h"
|
||||
|
||||
TEST(TsdbTest, createRepo) {
|
||||
STsdbCfg config;
|
||||
|
||||
// Create a tsdb repository
|
||||
// 1. Create a tsdb repository
|
||||
tsdbSetDefaultCfg(&config);
|
||||
tsdb_repo_t *pRepo = tsdbCreateRepo("/home/ubuntu/work/ttest/vnode0", &config, NULL);
|
||||
ASSERT_NE(pRepo, nullptr);
|
||||
|
||||
// // create a normal table in this repository
|
||||
// STableCfg config;
|
||||
// config.tableId.tid = 0;
|
||||
// config.tableId.uid = 98868728187539L;
|
||||
// config.numOfCols = 5;
|
||||
// config.schema = tdNewSchema(config.numOfCols);
|
||||
// STColumn *pCol = tdNewCol(TSDB_DATA_TYPE_TIMESTAMP, 0, 0);
|
||||
// tdColCpy(schemaColAt(config.schema, 0), pCol);
|
||||
// tdFreeCol(pCol);
|
||||
// for (int i = 1; i < schemaNCols(config.schema); i++) {
|
||||
// pCol = tdNewCol(TSDB_DATA_TYPE_BIGINT, i, 0);
|
||||
// tdColCpy(schemaColAt(config.schema, i), pCol);
|
||||
// tdFreeCol(pCol);
|
||||
// }
|
||||
// 2. Create a normal table
|
||||
STableCfg tCfg;
|
||||
ASSERT_EQ(tsdbInitTableCfg(&tCfg, TSDB_SUPER_TABLE, 987607499877672L, 0), -1);
|
||||
ASSERT_EQ(tsdbInitTableCfg(&tCfg, TSDB_NTABLE, 987607499877672L, 0), 0);
|
||||
|
||||
// tsdbCreateTable(pRepo, &config);
|
||||
// Write some data
|
||||
int nCols = 5;
|
||||
STSchema *schema = tdNewSchema(nCols);
|
||||
|
||||
// int32_t size = sizeof(SSubmitMsg) + sizeof(SSubmitBlock) + tdMaxRowDataBytes(config.schema) * 10 + sizeof(int32_t);
|
||||
|
||||
// tdUpdateSchema(config.schema);
|
||||
|
||||
// SSubmitMsg *pMsg = (SSubmitMsg *)malloc(size);
|
||||
// pMsg->numOfTables = 1; // TODO: use api
|
||||
|
||||
// SSubmitBlock *pBlock = (SSubmitBlock *)pMsg->data;
|
||||
// pBlock->tableId = {.uid = 98868728187539L, .tid = 0};
|
||||
// pBlock->sversion = 0;
|
||||
// pBlock->len = sizeof(SSubmitBlock);
|
||||
|
||||
// SDataRows rows = pBlock->data;
|
||||
// dataRowsInit(rows);
|
||||
|
||||
// SDataRow row = tdNewDataRow(tdMaxRowDataBytes(config.schema));
|
||||
// int64_t ttime = 1583508800000;
|
||||
// for (int i = 0; i < 10; i++) { // loop over rows
|
||||
// ttime += (10000 * i);
|
||||
// tdDataRowReset(row);
|
||||
// for (int j = 0; j < schemaNCols(config.schema); j++) {
|
||||
// if (j == 0) { // set time stamp
|
||||
// tdAppendColVal(row, (void *)(&ttime), schemaColAt(config.schema, j), 40);
|
||||
// } else { // set other fields
|
||||
// int32_t val = 10;
|
||||
// tdAppendColVal(row, (void *)(&val), schemaColAt(config.schema, j), 40);
|
||||
// }
|
||||
// }
|
||||
|
||||
// tdDataRowsAppendRow(rows, row);
|
||||
// }
|
||||
|
||||
// tsdbInsertData(pRepo, pMsg);
|
||||
|
||||
// tdFreeDataRow(row);
|
||||
|
||||
// tdFreeSchema(config.schema);
|
||||
// tsdbDropRepo(pRepo);
|
||||
}
|
||||
|
||||
TEST(TsdbTest, DISABLED_createTable) {
|
||||
STsdbMeta *pMeta = tsdbInitMeta(100);
|
||||
ASSERT_NE(pMeta, nullptr);
|
||||
|
||||
STableCfg config;
|
||||
config.tableId.tid = 0;
|
||||
config.tableId.uid = 98868728187539L;
|
||||
config.numOfCols = 5;
|
||||
config.schema = tdNewSchema(config.numOfCols);
|
||||
for (int i = 0; i < schemaNCols(config.schema); i++) {
|
||||
STColumn *pCol = tdNewCol(TSDB_DATA_TYPE_BIGINT, i, 0);
|
||||
tdColCpy(schemaColAt(config.schema, i), pCol);
|
||||
tdFreeCol(pCol);
|
||||
for (int i = 0; i < nCols; i++)
|
||||
{
|
||||
if (i == 0) {
|
||||
tdSchemaAppendCol(schema, TSDB_DATA_TYPE_TIMESTAMP, i, -1);
|
||||
} else {
|
||||
tdSchemaAppendCol(schema, TSDB_DATA_TYPE_INT, i, -1);
|
||||
}
|
||||
}
|
||||
config.tagValues = nullptr;
|
||||
|
||||
tsdbCreateTableImpl(pMeta, &config);
|
||||
tsdbTableSetSchema(&tCfg, schema, true);
|
||||
|
||||
STable *pTable = tsdbGetTableByUid(pMeta, config.tableId.uid);
|
||||
ASSERT_NE(pTable, nullptr);
|
||||
tsdbCreateTable(pRepo, &tCfg);
|
||||
|
||||
// 3. Loop to write some simple data
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue