-
Notifications
You must be signed in to change notification settings - Fork 67
/
constants.go
153 lines (142 loc) · 2.75 KB
/
constants.go
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package protocol
// VersionOne is version 1 of the server protocol.
const VersionOne = uint64(1)
// VersionLegacy is the pre 1.0 dqlite server protocol version.
const VersionLegacy = uint64(0x86104dd760433fe5)
// Cluster response formats
const (
ClusterFormatV0 = 0
ClusterFormatV1 = 1
)
// Node roles
const (
Voter = NodeRole(0)
StandBy = NodeRole(1)
Spare = NodeRole(2)
)
// SQLite datatype codes
const (
Integer = 1
Float = 2
Text = 3
Blob = 4
Null = 5
)
// Special data types for time values.
const (
UnixTime = 9
ISO8601 = 10
Boolean = 11
)
// Request types.
const (
RequestLeader = 0
RequestClient = 1
RequestHeartbeat = 2
RequestOpen = 3
RequestPrepare = 4
RequestExec = 5
RequestQuery = 6
RequestFinalize = 7
RequestExecSQL = 8
RequestQuerySQL = 9
RequestInterrupt = 10
RequestAdd = 12
RequestAssign = 13
RequestRemove = 14
RequestDump = 15
RequestCluster = 16
RequestTransfer = 17
RequestDescribe = 18
RequestWeight = 19
)
// Formats
const (
RequestDescribeFormatV0 = 0
)
// Response types.
const (
ResponseFailure = 0
ResponseNode = 1
ResponseNodeLegacy = 1
ResponseWelcome = 2
ResponseNodes = 3
ResponseDb = 4
ResponseStmt = 5
ResponseResult = 6
ResponseRows = 7
ResponseEmpty = 8
ResponseFiles = 9
ResponseMetadata = 10
)
// Human-readable description of a request type.
func requestDesc(code uint8) string {
switch code {
// Requests
case RequestLeader:
return "leader"
case RequestClient:
return "client"
case RequestHeartbeat:
return "heartbeat"
case RequestOpen:
return "open"
case RequestPrepare:
return "prepare"
case RequestExec:
return "exec"
case RequestQuery:
return "query"
case RequestFinalize:
return "finalize"
case RequestExecSQL:
return "exec-sql"
case RequestQuerySQL:
return "query-sql"
case RequestInterrupt:
return "interrupt"
case RequestAdd:
return "add"
case RequestAssign:
return "assign"
case RequestRemove:
return "remove"
case RequestDump:
return "dump"
case RequestCluster:
return "cluster"
case RequestTransfer:
return "transfer"
case RequestDescribe:
return "describe"
}
return "unknown"
}
// Human-readable description of a response type.
func responseDesc(code uint8) string {
switch code {
case ResponseFailure:
return "failure"
case ResponseNode:
return "node"
case ResponseWelcome:
return "welcome"
case ResponseNodes:
return "nodes"
case ResponseDb:
return "db"
case ResponseStmt:
return "stmt"
case ResponseResult:
return "result"
case ResponseRows:
return "rows"
case ResponseEmpty:
return "empty"
case ResponseFiles:
return "files"
case ResponseMetadata:
return "metadata"
}
return "unknown"
}