*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.146 2003/09/25 06:58:04 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.147 2003/10/16 21:37:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
}
/*
- * Clamp to size of rel, multiply by restriction selectivity.
+ * Sanity check --- don't divide by zero if empty relation.
*/
Assert(rel->reloptkind == RELOPT_BASEREL);
- if (reldistinct > rel->tuples)
- reldistinct = rel->tuples;
- reldistinct *= rel->rows / rel->tuples;
+ if (rel->tuples > 0)
+ {
+ /*
+ * Clamp to size of rel, multiply by restriction selectivity.
+ */
+ if (reldistinct > rel->tuples)
+ reldistinct = rel->tuples;
+ reldistinct *= rel->rows / rel->tuples;
- /*
- * Update estimate of total distinct groups.
- */
- numdistinct *= reldistinct;
+ /*
+ * Update estimate of total distinct groups.
+ */
+ numdistinct *= reldistinct;
+ }
varinfos = newvarinfos;
} while (varinfos != NIL);