Merge branch '2.0' of https://github.com/taosdata/TDengine into 2.0
This commit is contained in:
commit
3b269e00f3
|
@ -3,40 +3,54 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "tstring.h"
|
||||
#include "type.h"
|
||||
|
||||
typedef struct _scolumn {
|
||||
tstring_t colName; // column name
|
||||
td_datatype_t type; // data type
|
||||
int32_t bytes; // number of bytes
|
||||
// Column definition
|
||||
// TODO: if we need to align the structure
|
||||
typedef struct {
|
||||
td_datatype_t type; // Column type
|
||||
int32_t colId; // column ID
|
||||
int32_t bytes; // column bytes
|
||||
char * colName; // the column name
|
||||
} SColumn;
|
||||
|
||||
typedef struct SSchema {
|
||||
int32_t numOfCols;
|
||||
// Schema definition
|
||||
typedef struct {
|
||||
int32_t version; // schema version, it is used to change the schema
|
||||
int32_t numOfCols;
|
||||
int32_t numOfTags;
|
||||
int32_t colIdCounter;
|
||||
SColumn *columns;
|
||||
} SSchema;
|
||||
|
||||
// Column with version
|
||||
typedef struct {
|
||||
tstring_t colName;
|
||||
td_datatype_t type;
|
||||
int32_t colId;
|
||||
int32_t bytes;
|
||||
} SVColumn;
|
||||
/* Inline schema definition
|
||||
* +---------+---------+---------+-----+---------+-----------+-----+-----------+
|
||||
* | int32_t | | | | | | | |
|
||||
* +---------+---------+---------+-----+---------+-----------+-----+-----------+
|
||||
* | len | SSchema | SColumn | ... | SColumn | col1_name | ... | colN_name |
|
||||
* +---------+---------+---------+-----+---------+-----------+-----+-----------+
|
||||
*/
|
||||
typedef char *SISchema
|
||||
|
||||
// Schema with version
|
||||
typedef struct {
|
||||
int32_t version; // Schema with version
|
||||
int32_t numOfCols;
|
||||
int32_t numOfTags;
|
||||
SVColumn *columns;
|
||||
} SVSchema;
|
||||
// ---- operation on SColumn
|
||||
#define TD_COLUMN_TYPE(pCol) ((pCol)->type)
|
||||
#define TD_COLUMN_ID(pCol) ((pCol)->colId)
|
||||
#define TD_COLUMN_BYTES(pCol) ((pCol)->bytes)
|
||||
#define TD_COLUMN_NAME(pCol) ((pCol)->colName)
|
||||
|
||||
int32_t tdAddColumnToSchema(tstring_t pSchema, SColumn col);
|
||||
|
||||
td_datatype_t tdGetTypeOfCol(SSchema *pSchema, int32_t col);
|
||||
int32_t tdGetLengthOfCol(SSchema *pSchema, int32_t col);
|
||||
// ---- operation on SSchema
|
||||
#define TD_SCHEMA_VERSION(pSchema) ((pSchema)->version)
|
||||
#define TD_SCHEMA_NCOLS(pSchema) ((pSchema)->numOfCols)
|
||||
#define TD_SCHEMA_NTAGS(pSchema) ((pSchema)->numOfTags)
|
||||
#define TD_SCHEMA_TOTAL_COLS(pSchema) (TD_SCHEMA_NCOLS(pSchema) + TD_SCHEMA_NTAGS(pSchema))
|
||||
#define TD_SCHEMA_NEXT_COLID(pSchema) ((pSchema)->colIdCounter++)
|
||||
#define TD_SCHEMA_COLS(pSchema) ((pSchema)->columns)
|
||||
#define TD_SCHEMA_TAGS(pSchema) (TD_SCHEMA_COLS(pSchema) + TD_SCHEMA_NCOLS(pSchema))
|
||||
#define TD_SCHEMA_COLUMN_AT(pSchema, idx) TD_SCHEMA_COLS(pSchema)[idx]
|
||||
#define TD_SCHEMA_TAG_AT(pSchema, idx) TD_SCHEMA_TAGS(pSchema)[idx]
|
||||
|
||||
// ---- operation on SISchema
|
||||
#define TD_ISCHEMA_LEN(pISchema) *((int32_t *)(pISchema))
|
||||
#define TD_ISCHEMA_SCHEMA(pISchema) ((SSchema *)((pISchema) + sizeof(int32_t)))
|
||||
|
||||
#endif // _TD_SCHEMA_H_
|
||||
|
|
|
@ -29,4 +29,6 @@ typedef enum : uint8_t {
|
|||
#define TD_DATATYPE_NCHAR_NULL
|
||||
#define TD_DATATYPE_BINARY_NULL
|
||||
|
||||
#define TD_IS_VALID_DATATYPE(type) (((type) > TD_DATA_TYPE_INVLD) && ((type) <= TD_DATATYPE_BINARY))
|
||||
|
||||
#endif // _TD_TYPE_H_
|
||||
|
|
Loading…
Reference in New Issue