diff options
author | Bruce Momjian <bruce@momjian.us> | 2006-07-26 00:34:48 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2006-07-26 00:34:48 +0000 |
commit | 085e5596541bd894328b08f0e71a6eae3bf22034 (patch) | |
tree | 6c693387bfa0fbdb81498a257fd7930f94076e4a /src/backend/optimizer/plan/planner.c | |
parent | 796de9c1ed3d2cfc074c3cdbe9a12c698cd53336 (diff) | |
download | postgresql-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.c | 15 |
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 */ } |