aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/planner.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-07-26 00:34:48 +0000
committerBruce Momjian <bruce@momjian.us>2006-07-26 00:34:48 +0000
commit085e5596541bd894328b08f0e71a6eae3bf22034 (patch)
tree6c693387bfa0fbdb81498a257fd7930f94076e4a /src/backend/optimizer/plan/planner.c
parent796de9c1ed3d2cfc074c3cdbe9a12c698cd53336 (diff)
downloadpostgresql-085e5596541bd894328b08f0e71a6eae3bf22034.tar.gz
postgresql-085e5596541bd894328b08f0e71a6eae3bf22034.zip
Change LIMIT/OFFSET to use int8
Dhanaraj M
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r--src/backend/optimizer/plan/planner.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index a16ede1d7ca..5545da4978f 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.203 2006/07/14 14:52:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.204 2006/07/26 00:34:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -59,7 +59,7 @@ static Plan *inheritance_planner(PlannerInfo *root);
static Plan *grouping_planner(PlannerInfo *root, double tuple_fraction);
static double preprocess_limit(PlannerInfo *root,
double tuple_fraction,
- int *offset_est, int *count_est);
+ int64 *offset_est, int64 *count_est);
static bool choose_hashed_grouping(PlannerInfo *root, double tuple_fraction,
Path *cheapest_path, Path *sorted_path,
double dNumGroups, AggClauseCounts *agg_counts);
@@ -631,8 +631,8 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
{
Query *parse = root->parse;
List *tlist = parse->targetList;
- int offset_est = 0;
- int count_est = 0;
+ int64 offset_est = 0;
+ int64 count_est = 0;
Plan *result_plan;
List *current_pathkeys;
List *sort_pathkeys;
@@ -1080,7 +1080,7 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
*/
static double
preprocess_limit(PlannerInfo *root, double tuple_fraction,
- int *offset_est, int *count_est)
+ int64 *offset_est, int64 *count_est)
{
Query *parse = root->parse;
Node *est;
@@ -1105,7 +1105,7 @@ preprocess_limit(PlannerInfo *root, double tuple_fraction,
}
else
{
- *count_est = DatumGetInt32(((Const *) est)->constvalue);
+ *count_est = DatumGetInt64(((Const *) est)->constvalue);
if (*count_est <= 0)
*count_est = 1; /* force to at least 1 */
}
@@ -1128,7 +1128,8 @@ preprocess_limit(PlannerInfo *root, double tuple_fraction,
}
else
{
- *offset_est = DatumGetInt32(((Const *) est)->constvalue);
+ *offset_est = DatumGetInt64(((Const *) est)->constvalue);
+
if (*offset_est < 0)
*offset_est = 0; /* less than 0 is same as 0 */
}