[TD-90] alter tag function develop
This commit is contained in:
parent
df01a390d4
commit
eb6b6e0c74
|
@ -202,11 +202,15 @@ void tdMergeTwoDataCols(SDataCols *target, SDataCols *src1, int *iter1, SD
|
|||
// ----------------- Tag row structure
|
||||
|
||||
/* A tag row, the format is like below:
|
||||
+----------+-------------------------------------------------------------+---------------------------------+
|
||||
| int16 | int16 | int64 | int16 | int64 | ...| int16 | int64 | char |
|
||||
+----------+-------------------------------------------------------------+---------------------------------+
|
||||
| ncols | colId1 | offset1 | colId2 | offset2 | ...| colIdN | offsetN | values |
|
||||
+----------+-------------------------------------------------------------+---------------------------------+
|
||||
+----------+----------------------------------------------------------------+
|
||||
| STagRow | STagCol | STagCol | STagCol | STagCol | ...| STagCol | STagCol |
|
||||
+----------+----------------------------------------------------------------+
|
||||
|
||||
pData
|
||||
+----------+----------------------------------------------------------------+
|
||||
| value 1 | value 2 | value 3 | value 4 | ....|value n |
|
||||
+----------+----------------------------------------------------------------+
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
@ -221,8 +225,8 @@ void tdMergeTwoDataCols(SDataCols *target, SDataCols *src1, int *iter1, SD
|
|||
|
||||
typedef struct {
|
||||
int16_t colId; // column ID
|
||||
int8_t colType;
|
||||
int8_t colLen; // if col type is binary/Nchar, this is the length of binary/Nchar
|
||||
int16_t colType;
|
||||
int16_t colLen; // if col type is binary/Nchar, this is the length of binary/Nchar
|
||||
int16_t offset; //to store value for numeric col or offset for binary/Nchar
|
||||
} STagCol;
|
||||
|
||||
|
@ -238,7 +242,7 @@ typedef struct {
|
|||
|
||||
int tdInsertTagCol(SDataRow row, void *value, int16_t len, int8_t type, int16_t colId); //insert tag value and update all the information
|
||||
int tdDeleteTagCol(SDataRow row, int16_t colId); // delete tag value and update all the information
|
||||
int tdQuerTagByID(SDataRow row, int16_t colId, void *value); //if find tag, return value length, else return -1;
|
||||
int tdQuerTagByID(SDataRow row, int16_t colId, void *value, int16_t *type, int16_t *len); //if find tag, 0, else return -1;
|
||||
int tdAppendTagColVal(SDataRow row, void *value, int8_t type, int32_t bytes);
|
||||
|
||||
SDataRow tdNewTagRowFromSchema(STSchema *pSchema);
|
||||
|
|
|
@ -151,6 +151,26 @@ SDataRow tdNewDataRowFromSchema(STSchema *pSchema) {
|
|||
return row;
|
||||
}
|
||||
|
||||
int tdInsertTagCol(SDataRow row, void *value, int16_t len, int8_t type, int16_t colId){ //insert tag value and update all the information
|
||||
return 0;
|
||||
};
|
||||
|
||||
int tdDeleteTagCol(SDataRow row, int16_t colId){ // delete tag value and update all the information
|
||||
return o;
|
||||
};
|
||||
|
||||
int tdQuerTagByID(SDataRow row, int16_t colId, void *value, int16_t *type, int16_t *len){ //if find tag, 0, else return -1;
|
||||
return 0;
|
||||
};
|
||||
|
||||
int tdAppendTagColVal(SDataRow row, void *value, int8_t type, int32_t bytes){
|
||||
return 0;
|
||||
};
|
||||
|
||||
SDataRow tdNewTagRowFromSchema(STSchema *pSchema) {
|
||||
//todo
|
||||
}
|
||||
|
||||
/**
|
||||
* Free the SDataRow object
|
||||
*/
|
||||
|
@ -183,6 +203,25 @@ int tdAppendColVal(SDataRow row, void *value, int8_t type, int32_t bytes, int32_
|
|||
|
||||
return 0;
|
||||
}
|
||||
int tdAppendColVal(SDataRow row, void *value, int8_t type, int32_t bytes, int32_t offset) {
|
||||
ASSERT(value != NULL);
|
||||
int32_t toffset = offset + TD_DATA_ROW_HEAD_SIZE;
|
||||
char * ptr = POINTER_SHIFT(row, dataRowLen(row));
|
||||
|
||||
switch (type) {
|
||||
case TSDB_DATA_TYPE_BINARY:
|
||||
case TSDB_DATA_TYPE_NCHAR:
|
||||
*(VarDataOffsetT *)POINTER_SHIFT(row, toffset) = dataRowLen(row);
|
||||
memcpy(ptr, value, varDataTLen(value));
|
||||
dataRowLen(row) += varDataTLen(value);
|
||||
break;
|
||||
default:
|
||||
memcpy(POINTER_SHIFT(row, toffset), value, TYPE_BYTES[type]);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SDataRow tdDataRowDup(SDataRow row) {
|
||||
SDataRow trow = malloc(dataRowLen(row));
|
||||
|
|
Loading…
Reference in New Issue