]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/backends/gsql/gsqlbackend.hh
Deprecate the insert-record-order-query
[thirdparty/pdns.git] / pdns / backends / gsql / gsqlbackend.hh
CommitLineData
680f25f8
RK
1#ifndef PDNS_GSQLBACKEND_HH
2#define PDNS_GSQLBACKEND_HH
3
b4ce8b4e
BH
4#include <string>
5#include <map>
6#include "ssql.hh"
eb743bba 7#include "pdns/arguments.hh"
b4ce8b4e 8
9ad7641b 9#include "pdns/namespaces.hh"
b4ce8b4e 10
ad34750d
KM
11bool isDnssecDomainMetadata (const string& name);
12
1325e8a2
PD
13/*
14GSQLBackend is a generic backend used by other sql backends
15*/
b4ce8b4e
BH
16class GSQLBackend : public DNSBackend
17{
18public:
19 GSQLBackend(const string &mode, const string &suffix); //!< Makes our connection to the database. Throws an exception if it fails.
20 virtual ~GSQLBackend()
21 {
0f310932 22 freeStatements();
b4ce8b4e 23 if(d_db)
0f310932 24 delete d_db;
b4ce8b4e
BH
25 }
26
27 void setDB(SSql *db)
28 {
0f310932
AT
29 freeStatements();
30 delete d_db;
b4ce8b4e 31 d_db=db;
eb743bba
CH
32 if (d_db) {
33 d_db->setLog(::arg().mustDo("query-logging"));
0f310932
AT
34 d_NoIdQuery_stmt = d_db->prepare(d_NoIdQuery, 2);
35 d_IdQuery_stmt = d_db->prepare(d_IdQuery, 3);
36 d_ANYNoIdQuery_stmt = d_db->prepare(d_ANYNoIdQuery, 1);
37 d_ANYIdQuery_stmt = d_db->prepare(d_ANYIdQuery, 2);
38 d_listQuery_stmt = d_db->prepare(d_listQuery, 2);
39 d_listSubZoneQuery_stmt = d_db->prepare(d_listSubZoneQuery, 3);
40 d_MasterOfDomainsZoneQuery_stmt = d_db->prepare(d_MasterOfDomainsZoneQuery, 1);
41 d_InfoOfDomainsZoneQuery_stmt = d_db->prepare(d_InfoOfDomainsZoneQuery, 1);
42 d_InfoOfAllSlaveDomainsQuery_stmt = d_db->prepare(d_InfoOfAllSlaveDomainsQuery, 0);
43 d_SuperMasterInfoQuery_stmt = d_db->prepare(d_SuperMasterInfoQuery, 2);
44 d_GetSuperMasterIPs_stmt = d_db->prepare(d_GetSuperMasterIPs, 2);
53fe3b88 45 d_InsertZoneQuery_stmt = d_db->prepare(d_InsertZoneQuery, 1);
0f310932 46 d_InsertSlaveZoneQuery_stmt = d_db->prepare(d_InsertSlaveZoneQuery, 3);
08536840 47 d_InsertRecordQuery_stmt = d_db->prepare(d_InsertRecordQuery, 9);
09070ce7 48 d_InsertEmptyNonTerminalOrderQuery_stmt = d_db->prepare(d_InsertEmptyNonTerminalOrderQuery, 4);
0f310932
AT
49 d_UpdateMasterOfZoneQuery_stmt = d_db->prepare(d_UpdateMasterOfZoneQuery, 2);
50 d_UpdateKindOfZoneQuery_stmt = d_db->prepare(d_UpdateKindOfZoneQuery, 2);
79532aa7 51 d_UpdateAccountOfZoneQuery_stmt = d_db->prepare(d_UpdateAccountOfZoneQuery, 2);
0f310932
AT
52 d_UpdateSerialOfZoneQuery_stmt = d_db->prepare(d_UpdateSerialOfZoneQuery, 2);
53 d_UpdateLastCheckofZoneQuery_stmt = d_db->prepare(d_UpdateLastCheckofZoneQuery, 2);
54 d_InfoOfAllMasterDomainsQuery_stmt = d_db->prepare(d_InfoOfAllMasterDomainsQuery, 0);
55 d_DeleteDomainQuery_stmt = d_db->prepare(d_DeleteDomainQuery, 1);
56 d_DeleteZoneQuery_stmt = d_db->prepare(d_DeleteZoneQuery, 1);
57 d_DeleteRRSetQuery_stmt = d_db->prepare(d_DeleteRRSetQuery, 3);
58 d_DeleteNamesQuery_stmt = d_db->prepare(d_DeleteNamesQuery, 2);
59 d_ZoneLastChangeQuery_stmt = d_db->prepare(d_ZoneLastChangeQuery, 1);
60 d_firstOrderQuery_stmt = d_db->prepare(d_firstOrderQuery, 1);
61 d_beforeOrderQuery_stmt = d_db->prepare(d_beforeOrderQuery, 2);
62 d_afterOrderQuery_stmt = d_db->prepare(d_afterOrderQuery, 2);
63 d_lastOrderQuery_stmt = d_db->prepare(d_lastOrderQuery, 1);
79de0a80
KM
64 d_updateOrderNameAndAuthQuery_stmt = d_db->prepare(d_updateOrderNameAndAuthQuery, 4);
65 d_updateOrderNameAndAuthTypeQuery_stmt = d_db->prepare(d_updateOrderNameAndAuthTypeQuery, 5);
0f310932 66 d_nullifyOrderNameAndUpdateAuthQuery_stmt = d_db->prepare(d_nullifyOrderNameAndUpdateAuthQuery, 3);
79de0a80 67 d_nullifyOrderNameAndUpdateAuthTypeQuery_stmt = d_db->prepare(d_nullifyOrderNameAndUpdateAuthTypeQuery, 4);
09070ce7
PL
68 d_RemoveEmptyNonTerminalsFromZoneQuery_stmt = d_db->prepare(d_RemoveEmptyNonTerminalsFromZoneQuery, 1);
69 d_DeleteEmptyNonTerminalQuery_stmt = d_db->prepare(d_DeleteEmptyNonTerminalQuery, 2);
0f310932
AT
70 d_AddDomainKeyQuery_stmt = d_db->prepare(d_AddDomainKeyQuery, 4);
71 d_ListDomainKeysQuery_stmt = d_db->prepare(d_ListDomainKeysQuery, 1);
72 d_GetAllDomainMetadataQuery_stmt = d_db->prepare(d_GetAllDomainMetadataQuery, 1);
73 d_GetDomainMetadataQuery_stmt = d_db->prepare(d_GetDomainMetadataQuery, 2);
74 d_ClearDomainMetadataQuery_stmt = d_db->prepare(d_ClearDomainMetadataQuery, 2);
75 d_ClearDomainAllMetadataQuery_stmt = d_db->prepare(d_ClearDomainAllMetadataQuery, 1);
76 d_SetDomainMetadataQuery_stmt = d_db->prepare(d_SetDomainMetadataQuery, 3);
77 d_RemoveDomainKeyQuery_stmt = d_db->prepare(d_RemoveDomainKeyQuery, 2);
78 d_ActivateDomainKeyQuery_stmt = d_db->prepare(d_ActivateDomainKeyQuery, 2);
79 d_DeactivateDomainKeyQuery_stmt = d_db->prepare(d_DeactivateDomainKeyQuery, 2);
80 d_ClearDomainAllKeysQuery_stmt = d_db->prepare(d_ClearDomainAllKeysQuery, 1);
81 d_getTSIGKeyQuery_stmt = d_db->prepare(d_getTSIGKeyQuery, 1);
82 d_setTSIGKeyQuery_stmt = d_db->prepare(d_setTSIGKeyQuery, 3);
83 d_deleteTSIGKeyQuery_stmt = d_db->prepare(d_deleteTSIGKeyQuery, 1);
84 d_getTSIGKeysQuery_stmt = d_db->prepare(d_getTSIGKeysQuery, 0);
85 d_getAllDomainsQuery_stmt = d_db->prepare(d_getAllDomainsQuery, 1);
86 d_ListCommentsQuery_stmt = d_db->prepare(d_ListCommentsQuery, 1);
87 d_InsertCommentQuery_stmt = d_db->prepare(d_InsertCommentQuery, 6);
88 d_DeleteCommentRRsetQuery_stmt = d_db->prepare(d_DeleteCommentRRsetQuery, 3);
89 d_DeleteCommentsQuery_stmt = d_db->prepare(d_DeleteCommentsQuery, 1);
474cacfa
AT
90 d_SearchRecordsQuery_stmt = d_db->prepare(d_SearchRecordsQuery, 3);
91 d_SearchCommentsQuery_stmt = d_db->prepare(d_SearchCommentsQuery, 3);
182f7513 92 d_IsOurDomainQuery_stmt = d_db->prepare(d_IsOurDomainQuery, 2);
eb743bba 93 }
b4ce8b4e 94 }
0f310932
AT
95
96 void release(SSqlStatement **stmt) {
97 delete *stmt;
98 *stmt = NULL;
99 }
b4ce8b4e 100
0f310932
AT
101 void freeStatements() {
102 release(&d_NoIdQuery_stmt);
103 release(&d_IdQuery_stmt);
104 release(&d_ANYNoIdQuery_stmt);
105 release(&d_ANYIdQuery_stmt);
106 release(&d_listQuery_stmt);
107 release(&d_listSubZoneQuery_stmt);
108 release(&d_MasterOfDomainsZoneQuery_stmt);
109 release(&d_InfoOfDomainsZoneQuery_stmt);
110 release(&d_InfoOfAllSlaveDomainsQuery_stmt);
111 release(&d_SuperMasterInfoQuery_stmt);
112 release(&d_GetSuperMasterIPs_stmt);
113 release(&d_InsertZoneQuery_stmt);
114 release(&d_InsertSlaveZoneQuery_stmt);
115 release(&d_InsertRecordQuery_stmt);
09070ce7 116 release(&d_InsertEmptyNonTerminalOrderQuery_stmt);
0f310932
AT
117 release(&d_UpdateMasterOfZoneQuery_stmt);
118 release(&d_UpdateKindOfZoneQuery_stmt);
79532aa7 119 release(&d_UpdateAccountOfZoneQuery_stmt);
0f310932
AT
120 release(&d_UpdateSerialOfZoneQuery_stmt);
121 release(&d_UpdateLastCheckofZoneQuery_stmt);
122 release(&d_InfoOfAllMasterDomainsQuery_stmt);
123 release(&d_DeleteDomainQuery_stmt);
124 release(&d_DeleteZoneQuery_stmt);
125 release(&d_DeleteRRSetQuery_stmt);
126 release(&d_DeleteNamesQuery_stmt);
127 release(&d_ZoneLastChangeQuery_stmt);
128 release(&d_firstOrderQuery_stmt);
129 release(&d_beforeOrderQuery_stmt);
130 release(&d_afterOrderQuery_stmt);
131 release(&d_lastOrderQuery_stmt);
79de0a80
KM
132 release(&d_updateOrderNameAndAuthQuery_stmt);
133 release(&d_updateOrderNameAndAuthTypeQuery_stmt);
0f310932 134 release(&d_nullifyOrderNameAndUpdateAuthQuery_stmt);
79de0a80 135 release(&d_nullifyOrderNameAndUpdateAuthTypeQuery_stmt);
09070ce7
PL
136 release(&d_RemoveEmptyNonTerminalsFromZoneQuery_stmt);
137 release(&d_DeleteEmptyNonTerminalQuery_stmt);
0f310932
AT
138 release(&d_AddDomainKeyQuery_stmt);
139 release(&d_ListDomainKeysQuery_stmt);
140 release(&d_GetAllDomainMetadataQuery_stmt);
141 release(&d_GetDomainMetadataQuery_stmt);
142 release(&d_ClearDomainMetadataQuery_stmt);
143 release(&d_ClearDomainAllMetadataQuery_stmt);
144 release(&d_SetDomainMetadataQuery_stmt);
145 release(&d_RemoveDomainKeyQuery_stmt);
146 release(&d_ActivateDomainKeyQuery_stmt);
147 release(&d_DeactivateDomainKeyQuery_stmt);
148 release(&d_ClearDomainAllKeysQuery_stmt);
149 release(&d_getTSIGKeyQuery_stmt);
150 release(&d_setTSIGKeyQuery_stmt);
151 release(&d_deleteTSIGKeyQuery_stmt);
152 release(&d_getTSIGKeysQuery_stmt);
153 release(&d_getAllDomainsQuery_stmt);
154 release(&d_ListCommentsQuery_stmt);
155 release(&d_InsertCommentQuery_stmt);
156 release(&d_DeleteCommentRRsetQuery_stmt);
157 release(&d_DeleteCommentsQuery_stmt);
474cacfa
AT
158 release(&d_SearchRecordsQuery_stmt);
159 release(&d_SearchCommentsQuery_stmt);
182f7513 160 release(&d_IsOurDomainQuery_stmt);
0f310932
AT
161 }
162
f1d06abf
KM
163 void lookup(const QType &, const DNSName &qdomain, DNSPacket *p=0, int zoneId=-1);
164 bool list(const DNSName &target, int domain_id, bool include_disabled=false);
b4ce8b4e 165 bool get(DNSResourceRecord &r);
cea26350 166 void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false);
223d3559 167 bool isMaster(const DNSName &domain, const string &ip);
8f126bc1 168 void alsoNotifies(const DNSName &domain, set<string> *ips);
223d3559 169 bool startTransaction(const DNSName &domain, int domain_id=-1);
b4ce8b4e
BH
170 bool commitTransaction();
171 bool abortTransaction();
f9cf6d92 172 bool feedRecord(const DNSResourceRecord &r, string *ordername=0);
223d3559 173 bool feedEnts(int domain_id, map<DNSName,bool>& nonterm);
28e2e78e 174 bool feedEnts3(int domain_id, const DNSName &domain, map<DNSName,bool> &nonterm, const NSEC3PARAMRecordContent& ns3prc, bool narrow);
223d3559
KM
175 bool createDomain(const DNSName &domain);
176 bool createSlaveDomain(const string &ip, const DNSName &domain, const string &nameserver, const string &account);
177 bool deleteDomain(const DNSName &domain);
178 bool superMasterBackend(const string &ip, const DNSName &domain, const vector<DNSResourceRecord>&nsset, string *nameserver, string *account, DNSBackend **db);
092f210a 179 void setFresh(uint32_t domain_id);
b4ce8b4e
BH
180 void getUnfreshSlaveInfos(vector<DomainInfo> *domains);
181 void getUpdatedMasters(vector<DomainInfo> *updatedDomains);
8f126bc1 182 bool getDomainInfo(const DNSName &domain, DomainInfo &di);
092f210a 183 void setNotified(uint32_t domain_id, uint32_t serial);
223d3559
KM
184 bool setMaster(const DNSName &domain, const string &ip);
185 bool setKind(const DNSName &domain, const DomainInfo::DomainKind kind);
186 bool setAccount(const DNSName &domain, const string &account);
c02f13ef 187
223d3559 188 virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const string& qname, DNSName& unhashed, std::string& before, std::string& after);
79de0a80
KM
189 virtual bool updateDNSSECOrderNameAndAuth(uint32_t domain_id, const DNSName& zonename, const DNSName& qname, const DNSName& ordername, bool auth, const uint16_t=QType::ANY);
190
675fa24c 191 virtual bool updateEmptyNonTerminals(uint32_t domain_id, const DNSName& zonename, set<DNSName>& insert ,set<DNSName>& erase, bool remove);
ece45ffb 192 virtual bool doesDNSSEC();
5c3bf2db 193
223d3559 194 virtual bool calculateSOASerial(const DNSName& domain, const SOAData& sd, time_t& serial);
d07fc616 195
8f126bc1
KM
196 bool replaceRRSet(uint32_t domain_id, const DNSName& qname, const QType& qt, const vector<DNSResourceRecord>& rrset);
197 bool listSubZone(const DNSName &zone, int domain_id);
198 int addDomainKey(const DNSName& name, const KeyData& key);
199 bool getDomainKeys(const DNSName& name, unsigned int kind, std::vector<KeyData>& keys);
200 bool getAllDomainMetadata(const DNSName& name, std::map<std::string, std::vector<std::string> >& meta);
201 bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector<std::string>& meta);
202 bool setDomainMetadata(const DNSName& name, const std::string& kind, const std::vector<std::string>& meta);
203 bool clearDomainAllMetadata(const DNSName& domain);
4496f66f 204
8f126bc1
KM
205 bool removeDomainKey(const DNSName& name, unsigned int id);
206 bool activateDomainKey(const DNSName& name, unsigned int id);
207 bool deactivateDomainKey(const DNSName& name, unsigned int id);
4496f66f 208
8f126bc1
KM
209 bool getTSIGKey(const DNSName& name, DNSName* algorithm, string* content);
210 bool setTSIGKey(const DNSName& name, const DNSName& algorithm, const string& content);
211 bool deleteTSIGKey(const DNSName& name);
9a72349d
AT
212 bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
213
6cc98ddf
CH
214 bool listComments(const uint32_t domain_id);
215 bool getComment(Comment& comment);
216 void feedComment(const Comment& comment);
8f126bc1 217 bool replaceComments(const uint32_t domain_id, const DNSName& qname, const QType& qt, const vector<Comment>& comments);
f641c3b7
PD
218 bool replaceComments(const uint32_t domain_id, const string& qname, const QType& qt, const vector<Comment>& comments);
219 string directBackendCmd(const string &query);
474cacfa
AT
220 bool searchRecords(const string &pattern, int maxResults, vector<DNSResourceRecord>& result);
221 bool searchComments(const string &pattern, int maxResults, vector<Comment>& result);
f22459fc 222 bool isOurDomain(const DNSName *zone, int domain_id=-1);
474cacfa
AT
223protected:
224 string pattern2SQLPattern(const string& pattern);
225 void extractRecord(const SSqlStatement::row_t& row, DNSResourceRecord& rr);
512ad04f 226 void extractComment(const SSqlStatement::row_t& row, Comment& c);
6cc98ddf 227
b4ce8b4e 228private:
7c779a31 229 string d_query_name;
f1d06abf 230 DNSName d_qname;
b4ce8b4e 231 SSql *d_db;
0f310932 232 SSqlStatement::result_t d_result;
b4ce8b4e 233
75f02b56
KM
234 string d_NoIdQuery;
235 string d_IdQuery;
236 string d_ANYNoIdQuery;
237 string d_ANYIdQuery;
238
b4ce8b4e 239 string d_listQuery;
c69120f2 240 string d_listSubZoneQuery;
b4ce8b4e 241 string d_logprefix;
770e6a9c 242
36d772ab
BH
243 string d_MasterOfDomainsZoneQuery;
244 string d_InfoOfDomainsZoneQuery;
245 string d_InfoOfAllSlaveDomainsQuery;
246 string d_SuperMasterInfoQuery;
5805615b
AT
247 string d_GetSuperMasterName;
248 string d_GetSuperMasterIPs;
249
487cf033 250 string d_InsertZoneQuery;
36d772ab
BH
251 string d_InsertSlaveZoneQuery;
252 string d_InsertRecordQuery;
09070ce7 253 string d_InsertEmptyNonTerminalOrderQuery;
c02f13ef
CH
254 string d_UpdateMasterOfZoneQuery;
255 string d_UpdateKindOfZoneQuery;
79532aa7 256 string d_UpdateAccountOfZoneQuery;
36d772ab
BH
257 string d_UpdateSerialOfZoneQuery;
258 string d_UpdateLastCheckofZoneQuery;
259 string d_InfoOfAllMasterDomainsQuery;
09d6667a
CH
260 string d_DeleteDomainQuery;
261 string d_DeleteZoneQuery;
98d47e2e
CH
262 string d_DeleteRRSetQuery;
263 string d_DeleteNamesQuery;
d07fc616 264 string d_ZoneLastChangeQuery;
770e6a9c 265
5697411b 266 string d_firstOrderQuery;
136efa2f
BH
267 string d_beforeOrderQuery;
268 string d_afterOrderQuery;
bc74a078 269 string d_lastOrderQuery;
79de0a80
KM
270
271 string d_updateOrderNameAndAuthQuery;
272 string d_updateOrderNameAndAuthTypeQuery;
c2df797e 273 string d_nullifyOrderNameAndUpdateAuthQuery;
79de0a80
KM
274 string d_nullifyOrderNameAndUpdateAuthTypeQuery;
275
09070ce7
PL
276 string d_RemoveEmptyNonTerminalsFromZoneQuery;
277 string d_DeleteEmptyNonTerminalQuery;
136efa2f 278
c0273500
BH
279 string d_AddDomainKeyQuery;
280 string d_ListDomainKeysQuery;
df0cc941 281 string d_GetAllDomainMetadataQuery;
c0273500 282 string d_GetDomainMetadataQuery;
f7bcc763 283 string d_ClearDomainMetadataQuery;
09d6667a 284 string d_ClearDomainAllMetadataQuery;
c0273500 285 string d_SetDomainMetadataQuery;
4496f66f
BH
286
287 string d_RemoveDomainKeyQuery;
288 string d_ActivateDomainKeyQuery;
289 string d_DeactivateDomainKeyQuery;
09d6667a 290 string d_ClearDomainAllKeysQuery;
770e6a9c 291
78bcb858 292 string d_getTSIGKeyQuery;
9a72349d
AT
293 string d_setTSIGKeyQuery;
294 string d_deleteTSIGKeyQuery;
295 string d_getTSIGKeysQuery;
1325e8a2
PD
296
297 string d_getAllDomainsQuery;
298
6cc98ddf
CH
299 string d_ListCommentsQuery;
300 string d_InsertCommentQuery;
301 string d_DeleteCommentRRsetQuery;
302 string d_DeleteCommentsQuery;
303
474cacfa
AT
304 string d_SearchRecordsQuery;
305 string d_SearchCommentsQuery;
306
182f7513
AT
307 string d_IsOurDomainQuery;
308
0f310932
AT
309 SSqlStatement* d_query_stmt;
310
311 SSqlStatement* d_NoIdQuery_stmt;
312 SSqlStatement* d_IdQuery_stmt;
313 SSqlStatement* d_ANYNoIdQuery_stmt;
314 SSqlStatement* d_ANYIdQuery_stmt;
315 SSqlStatement* d_listQuery_stmt;
316 SSqlStatement* d_listSubZoneQuery_stmt;
317 SSqlStatement* d_MasterOfDomainsZoneQuery_stmt;
318 SSqlStatement* d_InfoOfDomainsZoneQuery_stmt;
319 SSqlStatement* d_InfoOfAllSlaveDomainsQuery_stmt;
320 SSqlStatement* d_SuperMasterInfoQuery_stmt;
321 SSqlStatement* d_GetSuperMasterIPs_stmt;
322 SSqlStatement* d_InsertZoneQuery_stmt;
323 SSqlStatement* d_InsertSlaveZoneQuery_stmt;
324 SSqlStatement* d_InsertRecordQuery_stmt;
09070ce7 325 SSqlStatement* d_InsertEmptyNonTerminalOrderQuery_stmt;
0f310932
AT
326 SSqlStatement* d_UpdateMasterOfZoneQuery_stmt;
327 SSqlStatement* d_UpdateKindOfZoneQuery_stmt;
79532aa7 328 SSqlStatement* d_UpdateAccountOfZoneQuery_stmt;
0f310932
AT
329 SSqlStatement* d_UpdateSerialOfZoneQuery_stmt;
330 SSqlStatement* d_UpdateLastCheckofZoneQuery_stmt;
331 SSqlStatement* d_InfoOfAllMasterDomainsQuery_stmt;
332 SSqlStatement* d_DeleteDomainQuery_stmt;
333 SSqlStatement* d_DeleteZoneQuery_stmt;
334 SSqlStatement* d_DeleteRRSetQuery_stmt;
335 SSqlStatement* d_DeleteNamesQuery_stmt;
336 SSqlStatement* d_ZoneLastChangeQuery_stmt;
337 SSqlStatement* d_firstOrderQuery_stmt;
338 SSqlStatement* d_beforeOrderQuery_stmt;
339 SSqlStatement* d_afterOrderQuery_stmt;
340 SSqlStatement* d_lastOrderQuery_stmt;
79de0a80
KM
341 SSqlStatement* d_updateOrderNameAndAuthQuery_stmt;
342 SSqlStatement* d_updateOrderNameAndAuthTypeQuery_stmt;
0f310932 343 SSqlStatement* d_nullifyOrderNameAndUpdateAuthQuery_stmt;
79de0a80 344 SSqlStatement* d_nullifyOrderNameAndUpdateAuthTypeQuery_stmt;
09070ce7
PL
345 SSqlStatement* d_RemoveEmptyNonTerminalsFromZoneQuery_stmt;
346 SSqlStatement* d_DeleteEmptyNonTerminalQuery_stmt;
0f310932
AT
347 SSqlStatement* d_AddDomainKeyQuery_stmt;
348 SSqlStatement* d_ListDomainKeysQuery_stmt;
349 SSqlStatement* d_GetAllDomainMetadataQuery_stmt;
350 SSqlStatement* d_GetDomainMetadataQuery_stmt;
351 SSqlStatement* d_ClearDomainMetadataQuery_stmt;
352 SSqlStatement* d_ClearDomainAllMetadataQuery_stmt;
353 SSqlStatement* d_SetDomainMetadataQuery_stmt;
354 SSqlStatement* d_RemoveDomainKeyQuery_stmt;
355 SSqlStatement* d_ActivateDomainKeyQuery_stmt;
356 SSqlStatement* d_DeactivateDomainKeyQuery_stmt;
357 SSqlStatement* d_ClearDomainAllKeysQuery_stmt;
358 SSqlStatement* d_getTSIGKeyQuery_stmt;
359 SSqlStatement* d_setTSIGKeyQuery_stmt;
360 SSqlStatement* d_deleteTSIGKeyQuery_stmt;
361 SSqlStatement* d_getTSIGKeysQuery_stmt;
362 SSqlStatement* d_getAllDomainsQuery_stmt;
363 SSqlStatement* d_ListCommentsQuery_stmt;
364 SSqlStatement* d_InsertCommentQuery_stmt;
365 SSqlStatement* d_DeleteCommentRRsetQuery_stmt;
366 SSqlStatement* d_DeleteCommentsQuery_stmt;
474cacfa
AT
367 SSqlStatement* d_SearchRecordsQuery_stmt;
368 SSqlStatement* d_SearchCommentsQuery_stmt;
182f7513 369 SSqlStatement* d_IsOurDomainQuery_stmt;
770e6a9c 370protected:
136efa2f 371 bool d_dnssecQueries;
b4ce8b4e 372};
680f25f8
RK
373
374#endif /* PDNS_GSQLBACKEND_HH */