static void pslCDnaFilter(char *inPsl, char *outPsl) /* filter cDNA alignments in psl format */ { struct outFiles outFiles; ZeroVar(&outFiles); outFiles.passFh = mustOpen(outPsl, "w"); if (gDropped != NULL) outFiles.dropFh = mustOpen(gDropped, "w"); if (gWeirdOverlappped != NULL) outFiles.weirdOverFh = mustOpen(gWeirdOverlappped, "w"); if (gHapRefMapped != NULL) outFiles.hapRefMappedFh = mustOpen(gHapRefMapped, "w"); if (gHapRefCDnaAlns != NULL) outFiles.hapRefCDnaAlnsFh = mustOpen(gHapRefCDnaAlns, "w"); if (gHapLociAlns != NULL) outFiles.hapLociAlnsFh = mustOpen(gHapLociAlns, "w"); struct hapRegions *hapRegions = (gHapRegions == NULL) ? NULL : hapRegionsNew(gHapRegions, outFiles.hapRefMappedFh, outFiles.hapRefCDnaAlnsFh); struct cDnaReader *reader = cDnaReaderNew(inPsl, gCDnaOpts, gPolyASizes, hapRegions); while (cDnaReaderNext(reader)) filterQuery(reader->cdna, hapRegions, &outFiles); carefulClose(&outFiles.hapRefMappedFh); carefulClose(&outFiles.hapRefCDnaAlnsFh); carefulClose(&outFiles.hapLociAlnsFh); carefulClose(&outFiles.dropFh); carefulClose(&outFiles.weirdOverFh); carefulClose(&outFiles.passFh); cDnaStatsPrint(&reader->stats, 1); hapRegionsFree(&hapRegions); cDnaReaderFree(&reader); }
void DBWorker::getHistory(const QString &filter) { // Skip empty titles always QString filterQuery("WHERE (NULLIF(title, '') IS NOT NULL AND url NOT LIKE 'about:%' AND %1) "); QString order; if (!filter.isEmpty()) { filterQuery = filterQuery.arg(QString("(url LIKE :search OR title LIKE :search)")); order = QString("visited_count DESC, date ASC, LENGTH(url), title"); } else { filterQuery = filterQuery.arg(1); order = QString("date DESC"); } QString queryString = QString("SELECT DISTINCT id, url, title " "FROM browser_history " "%1" "ORDER BY %2 LIMIT 20;").arg(filterQuery).arg(order); QSqlQuery query = prepare(queryString); if (!filter.isEmpty()) { query.bindValue(QString(":search"), QString("%%1%").arg(filter)); } if (!execute(query)) { return; } QList<Link> linkList; while (query.next()) { Link link(query.value(0).toInt(), query.value(1).toString(), "", query.value(2).toString()); #if DEBUG_LOGS qDebug() << &link; #endif linkList.append(link); } emit historyAvailable(linkList); }