Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit64c1fc7

Browse files
committed
Avoid division by zero in estimate_num_groups() when table has no rows.
1 parent624292a commit64c1fc7

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

‎src/backend/utils/adt/selfuncs.c

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*
1616
*
1717
* IDENTIFICATION
18-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.146 2003/09/25 06:58:04 petere Exp $
18+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.147 2003/10/16 21:37:54 tgl Exp $
1919
*
2020
*-------------------------------------------------------------------------
2121
*/
@@ -2166,17 +2166,23 @@ estimate_num_groups(Query *root, List *groupExprs, double input_rows)
21662166
}
21672167

21682168
/*
2169-
*Clamp to size of rel, multiplybyrestriction selectivity.
2169+
*Sanity check --- don't dividebyzero if empty relation.
21702170
*/
21712171
Assert(rel->reloptkind==RELOPT_BASEREL);
2172-
if (reldistinct>rel->tuples)
2173-
reldistinct=rel->tuples;
2174-
reldistinct *=rel->rows /rel->tuples;
2172+
if (rel->tuples>0)
2173+
{
2174+
/*
2175+
* Clamp to size of rel, multiply by restriction selectivity.
2176+
*/
2177+
if (reldistinct>rel->tuples)
2178+
reldistinct=rel->tuples;
2179+
reldistinct *=rel->rows /rel->tuples;
21752180

2176-
/*
2177-
* Update estimate of total distinct groups.
2178-
*/
2179-
numdistinct *=reldistinct;
2181+
/*
2182+
* Update estimate of total distinct groups.
2183+
*/
2184+
numdistinct *=reldistinct;
2185+
}
21802186

21812187
varinfos=newvarinfos;
21822188
}while (varinfos!=NIL);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp