9919e4384aea7c1f385129f39ca44ab47eb6f79e angie Wed Nov 14 14:40:36 2012 -0800 Tweak to 10-year-old code: in hGetCtBedRange, when we need a placeholderfor a column in the sql query, use "0" instead of the startField. It's a tiny bit more efficient and hopefully less eye-catching for Jorge. :) Speaking of efficiency, the CGIs could use a position-only (bed3) version. diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c index 6d2d1c6..40e337d 100644 --- src/hg/lib/hdb.c +++ src/hg/lib/hdb.c @@ -1779,58 +1779,57 @@ rootName, table); if (hti->isSplit) safef(fullTableName, sizeof(fullTableName), "%s_%s", chrom, rootName); else safef(fullTableName, sizeof(fullTableName), "%s", rootName); canDoUTR = hti->hasCDS; canDoIntrons = hti->hasBlocks; dyStringClear(query); // row[0], row[1] -> start, end dyStringPrintf(query, "SELECT %s,%s", hti->startField, hti->endField); // row[2] -> name or placeholder if (hti->nameField[0] != 0) dyStringPrintf(query, ",%s", hti->nameField); else - dyStringPrintf(query, ",%s", hti->startField); // keep the same #fields! + dyStringAppend(query, ",0"); // row[3] -> score or placeholder if (hti->scoreField[0] != 0) dyStringPrintf(query, ",%s", hti->scoreField); else - dyStringPrintf(query, ",%s", hti->startField); // keep the same #fields! + dyStringAppend(query, ",0"); // row[4] -> strand or placeholder if (hti->strandField[0] != 0) dyStringPrintf(query, ",%s", hti->strandField); else - dyStringPrintf(query, ",%s", hti->startField); // keep the same #fields! + dyStringAppend(query, ",0"); // row[5], row[6] -> cdsStart, cdsEnd or placeholders if (hti->cdsStartField[0] != 0) dyStringPrintf(query, ",%s,%s", hti->cdsStartField, hti->cdsEndField); else - dyStringPrintf(query, ",%s,%s", hti->startField, hti->startField); // keep the same #fields! + dyStringAppend(query, ",0,0"); // row[7], row[8], row[9] -> count, starts, ends/sizes or empty. if (hti->startsField[0] != 0) dyStringPrintf(query, ",%s,%s,%s", hti->countField, hti->startsField, hti->endsSizesField); else - dyStringPrintf(query, ",%s,%s,%s", hti->startField, hti->startField, - hti->startField); // keep same #fields! + dyStringAppend(query, ",0,0,0"); // row[10] -> tSize for PSL '-' strand coord-swizzling only: if (sameString("tStarts", hti->startsField)) dyStringAppend(query, ",tSize"); else - dyStringPrintf(query, ",%s", hti->startField); // keep the same #fields! + dyStringAppend(query, ",0"); dyStringPrintf(query, " FROM %s", fullTableName); if (chromEnd != 0) { dyStringPrintf(query, " WHERE %s < %d AND %s > %d", hti->startField, chromEnd, hti->endField, chromStart); gotWhere = TRUE; } if (hti->chromField[0] != 0) { dyStringPrintf(query, " %s %s = '%s'", (gotWhere ? "AND" : "WHERE"), hti->chromField, chrom); gotWhere = TRUE; } if (useSqlConstraints) {