aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2016-02-17 15:40:00 +0530
committerRobert Haas <rhaas@postgresql.org>2016-02-17 15:40:00 +0530
commitf1f5ec1efafe74ca45e24e0bf3371b1d6985c8ee (patch)
treeeab628891c0c2250d87bc703e27af7ca88fb9c0f /src/include/utils
parent66f503868b2ac1163aaf48a2f76d8be02af0bc81 (diff)
downloadpostgresql-f1f5ec1efafe74ca45e24e0bf3371b1d6985c8ee.tar.gz
postgresql-f1f5ec1efafe74ca45e24e0bf3371b1d6985c8ee.zip
Reuse abbreviated keys in ordered [set] aggregates.
When processing ordered aggregates following a sort that could make use of the abbreviated key optimization, only call the equality operator to compare successive pairs of tuples when their abbreviated keys were not equal. Peter Geoghegan, reviewd by Andreas Karlsson and by me.
Diffstat (limited to 'src/include/utils')
-rw-r--r--src/include/utils/tuplesort.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/utils/tuplesort.h b/src/include/utils/tuplesort.h
index d31d9945d18..5cecd6d1b86 100644
--- a/src/include/utils/tuplesort.h
+++ b/src/include/utils/tuplesort.h
@@ -93,13 +93,13 @@ extern void tuplesort_putdatum(Tuplesortstate *state, Datum val,
extern void tuplesort_performsort(Tuplesortstate *state);
extern bool tuplesort_gettupleslot(Tuplesortstate *state, bool forward,
- TupleTableSlot *slot);
+ TupleTableSlot *slot, Datum *abbrev);
extern HeapTuple tuplesort_getheaptuple(Tuplesortstate *state, bool forward,
bool *should_free);
extern IndexTuple tuplesort_getindextuple(Tuplesortstate *state, bool forward,
bool *should_free);
extern bool tuplesort_getdatum(Tuplesortstate *state, bool forward,
- Datum *val, bool *isNull);
+ Datum *val, bool *isNull, Datum *abbrev);
extern bool tuplesort_skiptuples(Tuplesortstate *state, int64 ntuples,
bool forward);