query.h 3.8 KB
Newer Older
D
dapan1121 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

D
dapan1121 已提交
16 17
#ifndef _TD_QUERY_H_
#define _TD_QUERY_H_
D
dapan1121 已提交
18 19 20 21 22

#ifdef __cplusplus
extern "C" {
#endif

D
dapan1121 已提交
23
#include "tarray.h"
24
#include "thash.h"
25
#include "tlog.h"
D
dapan1121 已提交
26

D
dapan1121 已提交
27 28 29 30 31 32 33 34 35
enum {
  JOB_TASK_STATUS_NOT_START = 1,
  JOB_TASK_STATUS_EXECUTING,
  JOB_TASK_STATUS_SUCCEED,
  JOB_TASK_STATUS_FAILED,
  JOB_TASK_STATUS_CANCELLING,
  JOB_TASK_STATUS_CANCELLED
};

D
dapan1121 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
typedef struct STableComInfo {
  uint8_t numOfTags;      // the number of tags in schema
  uint8_t precision;      // the number of precision
  int16_t numOfColumns;   // the number of columns
  int32_t rowSize;        // row size of the schema
} STableComInfo;

/*
 * ASSERT(sizeof(SCTableMeta) == 24)
 * ASSERT(tableType == TSDB_CHILD_TABLE)
 * The cached child table meta info. For each child table, 24 bytes are required to keep the essential table info.
 */
typedef struct SCTableMeta {
  int32_t  vgId:24;
  int8_t   tableType;
  uint64_t uid;
  uint64_t suid;
} SCTableMeta;

/*
 * Note that the first 24 bytes of STableMeta are identical to SCTableMeta, it is safe to cast a STableMeta to be a SCTableMeta.
 */
typedef struct STableMeta {
  //BEGIN: KEEP THIS PART SAME WITH SCTableMeta
  int32_t        vgId:24;
  int8_t         tableType;
  uint64_t       uid;
  uint64_t       suid;
  //END: KEEP THIS PART SAME WITH SCTableMeta
  
  // if the table is TSDB_CHILD_TABLE, the following information is acquired from the corresponding super table meta info
  int16_t        sversion;
  int16_t        tversion;
  STableComInfo  tableInfo;
  SSchema        schema[];
} STableMeta;


D
dapan1121 已提交
74
typedef struct SDBVgroupInfo {
75 76 77
  int32_t   vgVersion;  
  int8_t    hashMethod;
  SHashObj *vgInfo;  //key:vgId, value:SVgroupInfo
D
dapan1121 已提交
78 79 80
} SDBVgroupInfo;

typedef struct SUseDbOutput {
81 82
  char db[TSDB_FULL_DB_NAME_LEN];
  SDBVgroupInfo dbVgroup;
D
dapan1121 已提交
83 84
} SUseDbOutput;

D
dapan1121 已提交
85 86 87 88 89 90 91
typedef struct STableMetaOutput {
  int32_t     metaNum;
  char        ctbFname[TSDB_TABLE_FNAME_LEN];
  char        tbFname[TSDB_TABLE_FNAME_LEN];  
  SCTableMeta ctbMeta;
  STableMeta *tbMeta;
} STableMetaOutput;
D
dapan1121 已提交
92

H
Haojun Liao 已提交
93 94
bool tIsValidSchema(struct SSchema* pSchema, int32_t numOfCols, int32_t numOfTags);

D
dapan1121 已提交
95 96
extern int32_t (*queryBuildMsg[TSDB_MSG_TYPE_MAX])(void* input, char **msg, int32_t msgSize, int32_t *msgLen);
extern int32_t (*queryProcessMsgRsp[TSDB_MSG_TYPE_MAX])(void* output, char *msg, int32_t msgSize);
D
dapan1121 已提交
97

H
Haojun Liao 已提交
98
SSchema* tGetTbnameColumnSchema();
D
dapan1121 已提交
99 100
extern void msgInit();

101 102 103 104 105 106 107 108 109 110
extern int32_t qDebugFlag;

#define qFatal(...)  do { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", qDebugFlag, __VA_ARGS__); }} while(0)
#define qError(...)  do { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", qDebugFlag, __VA_ARGS__); }} while(0)
#define qWarn(...)   do { if (qDebugFlag & DEBUG_WARN)  { taosPrintLog("QRY WARN ", qDebugFlag, __VA_ARGS__); }}  while(0)
#define qInfo(...)   do { if (qDebugFlag & DEBUG_INFO)  { taosPrintLog("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
#define qDebug(...)  do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
#define qTrace(...)  do { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
#define qDebugL(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)

D
dapan1121 已提交
111 112 113 114 115

#ifdef __cplusplus
}
#endif

D
dapan1121 已提交
116
#endif /*_TD_QUERY_H_*/