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)