1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-11 20:28:21 +03:00

Code review for bigint-LIMIT patch. Fix missed planner dependency,

eliminate unnecessary code, force initdb because stored rules change
(limit nodes are now supposed to be int8 not int4 expressions).
Update comments and error messages, which still all said 'integer'.
This commit is contained in:
Tom Lane
2006-07-26 19:31:51 +00:00
parent 5ffa0bb47a
commit a998a69247
9 changed files with 54 additions and 66 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.26 2006/07/26 00:34:48 momjian Exp $
* $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.27 2006/07/26 19:31:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -23,7 +23,6 @@
#include "executor/executor.h"
#include "executor/nodeLimit.h"
#include "catalog/pg_type.h"
static void recompute_limits(LimitState *node);
@ -227,24 +226,14 @@ recompute_limits(LimitState *node)
{
ExprContext *econtext = node->ps.ps_ExprContext;
bool isNull;
Oid type;
if (node->limitOffset)
{
type = ((Const *) node->limitOffset->expr)->consttype;
if (type == INT8OID)
node->offset =
node->offset =
DatumGetInt64(ExecEvalExprSwitchContext(node->limitOffset,
econtext,
&isNull,
NULL));
else
node->offset = DatumGetInt32(ExecEvalExprSwitchContext(node->limitOffset,
econtext,
&isNull,
NULL));
/* Interpret NULL offset as no offset */
if (isNull)
node->offset = 0;
@ -260,21 +249,11 @@ recompute_limits(LimitState *node)
if (node->limitCount)
{
node->noCount = false;
type = ((Const *) node->limitCount->expr)->consttype;
if (type == INT8OID)
node->count =
node->count =
DatumGetInt64(ExecEvalExprSwitchContext(node->limitCount,
econtext,
&isNull,
NULL));
else
node->count = DatumGetInt32(ExecEvalExprSwitchContext(node->limitCount,
econtext,
&isNull,
NULL));
/* Interpret NULL count as no count (LIMIT ALL) */
if (isNull)
node->noCount = true;