[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
|
// ----------------- Tag row structure
|
||||||
|
|
||||||
/* A tag row, the format is like below:
|
/* A tag row, the format is like below:
|
||||||
+----------+-------------------------------------------------------------+---------------------------------+
|
+----------+----------------------------------------------------------------+
|
||||||
| int16 | int16 | int64 | int16 | int64 | ...| int16 | int64 | char |
|
| STagRow | STagCol | STagCol | STagCol | STagCol | ...| STagCol | STagCol |
|
||||||
+----------+-------------------------------------------------------------+---------------------------------+
|
+----------+----------------------------------------------------------------+
|
||||||
| ncols | colId1 | offset1 | colId2 | offset2 | ...| colIdN | offsetN | values |
|
|
||||||
+----------+-------------------------------------------------------------+---------------------------------+
|
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 {
|
typedef struct {
|
||||||
int16_t colId; // column ID
|
int16_t colId; // column ID
|
||||||
int8_t colType;
|
int16_t colType;
|
||||||
int8_t colLen; // if col type is binary/Nchar, this is the length of binary/Nchar
|
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
|
int16_t offset; //to store value for numeric col or offset for binary/Nchar
|
||||||
} STagCol;
|
} 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 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 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);
|
int tdAppendTagColVal(SDataRow row, void *value, int8_t type, int32_t bytes);
|
||||||
|
|
||||||
SDataRow tdNewTagRowFromSchema(STSchema *pSchema);
|
SDataRow tdNewTagRowFromSchema(STSchema *pSchema);
|
||||||
|
|
|
@ -151,6 +151,26 @@ SDataRow tdNewDataRowFromSchema(STSchema *pSchema) {
|
||||||
return row;
|
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
|
* Free the SDataRow object
|
||||||
*/
|
*/
|
||||||
|
@ -183,6 +203,25 @@ int tdAppendColVal(SDataRow row, void *value, int8_t type, int32_t bytes, int32_
|
||||||
|
|
||||||
return 0;
|
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 tdDataRowDup(SDataRow row) {
|
||||||
SDataRow trow = malloc(dataRowLen(row));
|
SDataRow trow = malloc(dataRowLen(row));
|
||||||
|
|
Loading…
Reference in New Issue