54fecfe1d1d5ca2596bad9212d9b05c0464fd3db angie Mon Jun 17 15:03:07 2013 -0700 Fixing bug w/interaction of merge state and chrom-skipping queries. diff --git src/hg/lib/annoStreamDb.c src/hg/lib/annoStreamDb.c index 7bfca75..da358ce 100644 --- src/hg/lib/annoStreamDb.c +++ src/hg/lib/annoStreamDb.c @@ -295,30 +295,37 @@ } else { // Genome-wide query: break it into chrom-by-chrom queries. if (self->queryChrom == NULL) self->queryChrom = self->chromList; else if (!self->doNextChunk) self->queryChrom = self->queryChrom->next; if (minChrom != NULL) { // Skip chroms that precede minChrom while (self->queryChrom != NULL && strcmp(self->queryChrom->name, minChrom) < 0) { self->queryChrom = self->queryChrom->next; self->doNextChunk = FALSE; + resetMergeState(self); + } + if (self->hasBin) + { + self->mergeBins = TRUE; + if (self->qLm == NULL) + self->qLm = lmInit(0); } } if (self->queryChrom == NULL) self->eof = TRUE; else { char *chrom = self->queryChrom->name; int start = 0; if (minChrom != NULL && sameString(chrom, minChrom)) start = minEnd; if (self->doNextChunk && start < self->nextChunkStart) start = self->nextChunkStart; uint end = annoAssemblySeqSize(self->streamer.assembly, self->queryChrom->name); dyStringPrintf(query, "where %s = '%s' ", self->chromField, chrom); if (start > 0 || self->doNextChunk)