-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmdbtype.h
More file actions
98 lines (74 loc) · 1.28 KB
/
mdbtype.h
File metadata and controls
98 lines (74 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef _MDBTYPE_H_
#define _MDBTYPE_H_
#include "sqlparser/lexer.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MAXLINESIZE 4096
#define TABLEHEADER 1024
#define MAGICSTR "MDB VERSION 0.1"
typedef enum SqlType{
NOP=0,CRT,DROP,INSERT,SEL
}SqlType;
typedef unsigned char u8;
typedef struct Token{
// const unsigned char *z;
const char *z;
unsigned dyn:1;
unsigned n:31;
}Token;
typedef struct Expr{
u8 op;
Expr *pLeft,*pRight;
Token token;
Token span;
}Expr;
typedef struct IdList{
struct IdList_item{
char *zName; /*name of the item */
int idx; /* index of the column */
}*a;
int nId;
int nAlloc;
}IdList;
typedef struct ExprList_item{
Expr *pExpr;
char *zName;
u8 done;
}ExprList_item;
typedef struct ExprList{
int nExpr;
int nAlloc;
ExprList_item *a;
}ExprList;
typedef struct Column{
char *colname;
char *zType;
Expr *pDflt;/*default value */
u8 notNull;
u8 isPrimaryKey;
int extraarg1;
int extraarg2;
}Column;
typedef struct Table{
char *zName;
const char *creatsql;
int nCol;
Column *aCol;
u8 hasPrimKey;
}Table;
//class Lexer;
typedef struct Parse{
Lexer *lexer;
const char *zSql;
int explain;
int errorcode;
char errmsg[MAXLINESIZE];
SqlType stype;
/* meet create table */
Table *newtbl;
}Parse;
#ifdef __cplusplus
}
#endif
#endif