declare(suffix,"insert-record-query","", "insert into records (content,ttl,prio,type,domain_id,name) values ('%s',%d,%d,'%s',%d,'%s')");
declare(suffix,"insert-record-query-auth","", "insert into records (content,ttl,prio,type,domain_id,name,auth) values ('%s',%d,%d,'%s',%d,'%s', '%d')");
+ declare(suffix,"get-order-first-query","DNSSEC Ordering Query, first", "select ordername, name from records where auth=1 and domain_id=%d order by 1 asc limit 1");
declare(suffix,"get-order-before-query","DNSSEC Ordering Query, before", "select ordername, name from records where ordername <= '%s' and auth=1 and domain_id=%d order by 1 desc limit 1");
declare(suffix,"get-order-after-query","DNSSEC Ordering Query, after", "select min(ordername) from records where ordername > '%s' and auth=1 and domain_id=%d");
declare(suffix,"get-order-last-query","DNSSEC Ordering Query, last", "select ordername, name from records where ordername != '' and auth=1 and domain_id=%d order by 1 desc limit 1");
declare(suffix,"set-order-and-auth-query", "DNSSEC set ordering query", "update records set ordername='%s',auth=%d where name='%s' and domain_id='%d'");
-
declare(suffix,"update-serial-query","", "update domains set notified_serial=%d where id=%d");
declare(suffix,"update-lastcheck-query","", "update domains set last_check=%d where id=%d");
declare(suffix,"zone-lastchange-query", "", "select max(change_date) from records where domain_id=%d");
declare(suffix,"insert-record-query","", "insert into records (content,ttl,prio,type,domain_id,name) values (E'%s',%d,%d,'%s',%d,E'%s')");
declare(suffix,"insert-record-query-auth","", "insert into records (content,ttl,prio,type,domain_id,name,auth) values (E'%s',%d,%d,'%s',%d,E'%s', '%d')");
+ declare(suffix,"get-order-first-query","DNSSEC Ordering Query, last", "select ordername, name from records where auth and domain_id=%d order by 1 asc limit 1");
declare(suffix,"get-order-before-query","DNSSEC Ordering Query, before", "select ordername, name from records where ordername <= E'%s' and auth and domain_id=%d order by 1 desc limit 1");
declare(suffix,"get-order-after-query","DNSSEC Ordering Query, after", "select min(ordername) from records where ordername > E'%s' and auth and domain_id=%d");
declare(suffix,"get-order-last-query","DNSSEC Ordering Query, last", "select ordername, name from records where ordername != '' and auth and domain_id=%d order by 1 desc limit 1");
declare(suffix,"list-query-auth","AXFR query", "select content,ttl,prio,type,domain_id,name, auth from records where domain_id='%d' order by name, type");
+ declare(suffix,"get-order-first-query","DNSSEC Ordering Query, first", "select ordername, name from records where auth=1 and domain_id=%d order by 1 asc limit 1");
declare(suffix,"get-order-before-query","DNSSEC Ordering Query, before", "select ordername, name from records where ordername <= '%s' and auth=1 and domain_id=%d order by 1 desc limit 1");
declare(suffix,"get-order-after-query","DNSSEC Ordering Query, after", "select min(ordername) from records where ordername > '%s' and auth=1 and domain_id=%d");
declare(suffix,"get-order-last-query","DNSSEC Ordering Query, last", "select ordername, name from records where ordername != '' and auth=1 and domain_id=%d order by 1 desc limit 1");
if (d_dnssecQueries)
{
+ d_firstOrderQuery = getArg("get-order-first-query");
d_beforeOrderQuery = getArg("get-order-before-query");
d_afterOrderQuery = getArg("get-order-after-query");
d_lastOrderQuery = getArg("get-order-last-query");
char output[1024];
string tmp=lcqname;
-retryAfter:
snprintf(output, sizeof(output)-1, d_afterOrderQuery.c_str(), sqlEscape(tmp).c_str(), id);
d_db->doQuery(output);
}
if(after.empty() && !tmp.empty()) {
- //cerr<<"Oops, have to pick the first, there is no last!"<<endl;
- tmp.clear();
- goto retryAfter;
+ snprintf(output, sizeof(output)-1, d_firstOrderQuery.c_str(), id);
+
+ d_db->doQuery(output);
+ while(d_db->getRow(row)) {
+ after=row[0];
+ }
}
string d_DeleteZoneQuery;
string d_ZoneLastChangeQuery;
+ string d_firstOrderQuery;
string d_beforeOrderQuery;
string d_afterOrderQuery;
string d_lastOrderQuery;