update tindex write

This commit is contained in:
yihaoDeng 2021-12-22 12:20:59 +08:00
parent 844c5ac4bb
commit ebcb9be39f
2 changed files with 26 additions and 1 deletions

View File

@ -757,7 +757,7 @@ bool fstBuilderInsert(FstBuilder* b, FstSlice bs, Output in) {
fstBuilderInsertOutput(b, bs, in); fstBuilderInsertOutput(b, bs, in);
return true; return true;
} }
indexInfo("key must be ordered"); indexInfo("fst write key must be ordered");
return false; return false;
} }

View File

@ -65,6 +65,21 @@ static FORCE_INLINE int tfileWriteHeader(TFileWriter* writer) {
writer->offset = offset; writer->offset = offset;
return 0; return 0;
} }
static int tfileWriteData(TFileWriter* write, TFileValue* tval) {
TFileHeader* header = &write->header;
uint8_t colType = header->colType;
if (colType == TSDB_DATA_TYPE_BINARY || colType == TSDB_DATA_TYPE_NCHAR) {
FstSlice key = fstSliceCreate((uint8_t*)(tval->colVal), (size_t)strlen(tval->colVal));
if (fstBuilderInsert(write->fb, key, tval->offset)) {
fstSliceDestroy(&key);
return 0;
}
fstSliceDestroy(&key);
return -1;
} else {
// handle other type later
}
}
static FORCE_INLINE int tfileReadLoadHeader(TFileReader* reader) { static FORCE_INLINE int tfileReadLoadHeader(TFileReader* reader) {
// TODO simple tfile header later // TODO simple tfile header later
char buf[TFILE_HADER_PRE_SIZE]; char buf[TFILE_HADER_PRE_SIZE];
@ -305,6 +320,16 @@ int TFileWriterPut(TFileWriter* tw, void* data) {
tw->ctx->write(tw->ctx, buf, offset); tw->ctx->write(tw->ctx, buf, offset);
} }
// write fst
for (size_t i = 0; i < sz; i++) {
// TODO, fst batch write later
TFileValue* v = taosArrayGetP((SArray*)data, i);
if (tfileWriteData(tw, v) == 0) {
//
//
}
}
tfree(buf); tfree(buf);
return 0; return 0;
} }