diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index 845e418130..5b69f37324 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -1,4 +1,4 @@ - + Frontend/Backend Protocol @@ -737,9 +737,9 @@ The unnamed prepared statement is likewise planned during Parse processing if the Parse message defines no parameters. But if there are parameters, - query planning occurs during Bind processing instead. This allows the - planner to make use of the actual values of the parameters provided in - the Bind message when planning the query. + query planning occurs every time Bind parameters are supplied. This allows the + planner to make use of the actual values of the parameters provided by + each Bind message, rather than use generic estimates. diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 8d33000e61..15d0808ad2 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.588 2010/02/13 01:32:19 sriggs Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.589 2010/02/16 20:15:14 momjian Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -1469,7 +1469,7 @@ exec_bind_message(StringInfo input_message) } else { - /* special-case the unnamed statement */ + /* Unnamed statements are re-prepared for every bind */ psrc = unnamed_stmt_psrc; if (!psrc) ereport(ERROR,