]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
gsqlbackend: remove hardcoded replaceRRSet queries
authorChristian Hofstaedtler <christian@hofstaedtler.name>
Fri, 31 Jan 2014 14:50:23 +0000 (15:50 +0100)
committerChristian Hofstaedtler <christian@hofstaedtler.name>
Mon, 3 Feb 2014 15:08:35 +0000 (16:08 +0100)
modules/gmysqlbackend/gmysqlbackend.cc
modules/goraclebackend/goraclebackend.cc
modules/gpgsqlbackend/gpgsqlbackend.cc
modules/gsqlite3backend/gsqlite3backend.cc
pdns/backends/gsql/gsqlbackend.cc
pdns/backends/gsql/gsqlbackend.hh

index 3e080a7d00d9e39c7b396f468b28a72a79ec8573..566438077f76920bda285cadeb519dd460ae2da0 100644 (file)
@@ -118,6 +118,7 @@ public:
     declare(suffix,"delete-domain-query","", "delete from domains where name='%s'");
     declare(suffix,"delete-zone-query","", "delete from records where domain_id=%d");
     declare(suffix,"delete-rrset-query","","delete from records where domain_id=%d and name='%s' and type='%s'");
+    declare(suffix,"delete-names-query","","delete from records where domain_id = %d and name='%s'");
 
     declare(suffix,"add-domain-key-query","", "insert into cryptokeys (domain_id, flags, active, content) select id, %d, %d, '%s' from domains where name='%s'");
     declare(suffix,"list-domain-keys-query","", "select cryptokeys.id, flags, active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name='%s'");
index 05ba46793995b9f84d0e1d03acfac5e6d592341a..61d86f901a2f87e610addb6302bad902edfa6bfb 100644 (file)
@@ -124,6 +124,7 @@ public:
     declare(suffix,"delete-domain-query","", "delete from domains where name='%s'");
     declare(suffix,"delete-zone-query","", "delete from records where domain_id=%d");
     declare(suffix,"delete-rrset-query","","delete from records where domain_id=%d and name='%s' and type='%s'");
+    declare(suffix,"delete-names-query","","delete from records where domain_id=%d and name='%s'");
 
     declare(suffix,"add-domain-key-query","", "insert into cryptokeys (id, domain_id, flags, active, content) select cryptokeys_id_sequence.nextval, id, %d, %d, '%s' from domains where name='%s'");
     declare(suffix,"list-domain-keys-query","", "select cryptokeys.id, flags, active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name='%s'");
index 0619b643100bfd8cdc398a9eb07c0ce2a88cd1b3..a2125b14f43c84dfe131bd60c89df40c377b5a31 100644 (file)
@@ -113,6 +113,7 @@ public:
     declare(suffix,"delete-domain-query","", "delete from domains where name=E'%s'");
     declare(suffix,"delete-zone-query","", "delete from records where domain_id=%d");
     declare(suffix,"delete-rrset-query","","delete from records where domain_id=%d and name=E'%s' and type=E'%s'");
+    declare(suffix,"delete-names-query","","delete from records where domain_id=%d and name=E'%s'");
 
     declare(suffix,"add-domain-key-query","", "insert into cryptokeys (domain_id, flags, active, content) select id, %d, (%d = 1), '%s' from domains where name=E'%s'");
     declare(suffix,"list-domain-keys-query","", "select cryptokeys.id, flags, case when active then 1 else 0 end as active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name=E'%s'");
index 3f51a90ea3e07509f190eb9921c0e8884273a4e1..7415e3ed023e0d8611f59af71631e7389ecb756e 100644 (file)
@@ -125,6 +125,7 @@ public:
     declare(suffix,"delete-domain-query","", "delete from domains where name='%s'");
     declare( suffix, "delete-zone-query", "", "delete from records where domain_id=%d");
     declare( suffix, "delete-rrset-query", "", "delete from records where domain_id = %d and name='%s' and type='%s'");
+    declare( suffix, "delete-names-query", "", "delete from records where domain_id = %d and name='%s'");
     declare(suffix, "dnssec", "Assume DNSSEC Schema is in place","no");
 
     declare(suffix,"add-domain-key-query","", "insert into cryptokeys (domain_id, flags, active, content) select id, %d, %d, '%s' from domains where name='%s'");
index ecd3203c592002bfcbaac5a131edeeaf6db0e61d..0654b80eb2019a2ad9ff4097928de0eaf2a458e3 100644 (file)
@@ -303,7 +303,8 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix)
   d_InfoOfAllMasterDomainsQuery=getArg("info-all-master-query");
   d_DeleteDomainQuery=getArg("delete-domain-query");
   d_DeleteZoneQuery=getArg("delete-zone-query");
-  d_DeleteRRSet=getArg("delete-rrset-query");
+  d_DeleteRRSetQuery=getArg("delete-rrset-query");
+  d_DeleteNamesQuery=getArg("delete-names-query");
   d_getAllDomainsQuery=getArg("get-all-domains-query");
 
   d_removeEmptyNonTerminalsFromZoneQuery = getArg("remove-empty-non-terminals-from-zone-query");
@@ -1051,16 +1052,20 @@ bool GSQLBackend::get(DNSResourceRecord &r)
 
 bool GSQLBackend::replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector<DNSResourceRecord>& rrset)
 {
-  string deleteQuery;
-  string deleteRRSet;
+  string query;
   if (qt != QType::ANY) {
-    deleteRRSet = "delete from records where domain_id = %d and name='%s' and type='%s'";
-    deleteQuery = (boost::format(deleteRRSet) % domain_id % sqlEscape(qname) % sqlEscape(qt.getName())).str();
+    query = (boost::format(d_DeleteRRSetQuery)
+             % domain_id
+             % sqlEscape(qname)
+             % sqlEscape(qt.getName())
+      ).str();
   } else {
-    deleteRRSet = "delete from records where domain_id = %d and name='%s'";
-    deleteQuery = (boost::format(deleteRRSet) % domain_id % sqlEscape(qname)).str();
+    query = (boost::format(d_DeleteNamesQuery)
+             % domain_id
+             % sqlEscape(qname)
+      ).str();
   }
-  d_db->doCommand(deleteQuery);
+  d_db->doCommand(query);
   BOOST_FOREACH(const DNSResourceRecord& rr, rrset) {
     feedRecord(rr);
   }
index 21f0caa66e3ac505c1fa3fd6b9fe86004f6095f5..831308558690a7bec1422aed465042d580a60674 100644 (file)
@@ -111,7 +111,8 @@ private:
   string d_InfoOfAllMasterDomainsQuery;
   string d_DeleteDomainQuery;
   string d_DeleteZoneQuery;
-  string d_DeleteRRSet;
+  string d_DeleteRRSetQuery;
+  string d_DeleteNamesQuery;
   string d_ZoneLastChangeQuery;
 
   string d_firstOrderQuery;