v3-0007-Tuplesort-code-beautification.patch
application/octet-stream
Filename: v3-0007-Tuplesort-code-beautification.patch
Type: application/octet-stream
Part: 1
Message:
Re: Custom tuplesorts for extensions
Patch
Format: format-patch
Series: patch v3-0007
Subject: Tuplesort code beautification
| File | + | − |
|---|---|---|
| src/backend/utils/sort/tuplesortvariants.c | 252 | 188 |
From e7ae8c8ebaa63446838816a80d63aa2051dc2c6e Mon Sep 17 00:00:00 2001
From: Pavel Borisov <pashkin.elfe@gmail.com>
Date: Fri, 22 Jul 2022 19:47:50 +0400
Subject: [PATCH v3 7/7] Tuplesort code beautification
---
src/backend/utils/sort/tuplesortvariants.c | 440 ++++++++++++---------
1 file changed, 252 insertions(+), 188 deletions(-)
diff --git a/src/backend/utils/sort/tuplesortvariants.c b/src/backend/utils/sort/tuplesortvariants.c
index e7bc87c71c..92f3206bf4 100644
--- a/src/backend/utils/sort/tuplesortvariants.c
+++ b/src/backend/utils/sort/tuplesortvariants.c
@@ -126,18 +126,18 @@ typedef struct
} TuplesortDatumArg;
Tuplesortstate *
-tuplesort_begin_heap(TupleDesc tupDesc,
- int nkeys, AttrNumber *attNums,
+tuplesort_begin_heap(TupleDesc tupDesc, int nkeys, AttrNumber *attNums,
Oid *sortOperators, Oid *sortCollations,
bool *nullsFirstFlags,
int workMem, SortCoordinate coordinate, int sortopt)
{
- Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate,
- sortopt);
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext;
- int i;
+ Tuplesortstate *state;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ int i;
+ state = tuplesort_begin_common(workMem, coordinate, sortopt);
+ base = TuplesortstateGetPublic(state);
oldcontext = MemoryContextSwitchTo(base->maincontext);
AssertArg(nkeys > 0);
@@ -200,19 +200,18 @@ tuplesort_begin_heap(TupleDesc tupDesc,
}
Tuplesortstate *
-tuplesort_begin_cluster(TupleDesc tupDesc,
- Relation indexRel,
- int workMem,
+tuplesort_begin_cluster(TupleDesc tupDesc, Relation indexRel, int workMem,
SortCoordinate coordinate, int sortopt)
{
- Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate,
- sortopt);
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- BTScanInsert indexScanKey;
- MemoryContext oldcontext;
+ Tuplesortstate *state;
+ TuplesortPublic *base;
+ BTScanInsert indexScanKey;
+ MemoryContext oldcontext;
TuplesortClusterArg *arg;
- int i;
+ int i;
+ state = tuplesort_begin_common(workMem, coordinate, sortopt);
+ base = TuplesortstateGetPublic(state);
Assert(indexRel->rd_rel->relam == BTREE_AM_OID);
oldcontext = MemoryContextSwitchTo(base->maincontext);
@@ -308,22 +307,20 @@ tuplesort_begin_cluster(TupleDesc tupDesc,
}
Tuplesortstate *
-tuplesort_begin_index_btree(Relation heapRel,
- Relation indexRel,
- bool enforceUnique,
- bool uniqueNullsNotDistinct,
- int workMem,
- SortCoordinate coordinate,
+tuplesort_begin_index_btree(Relation heapRel, Relation indexRel,
+ bool enforceUnique, bool uniqueNullsNotDistinct,
+ int workMem, SortCoordinate coordinate,
int sortopt)
{
- Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate,
- sortopt);
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- BTScanInsert indexScanKey;
+ Tuplesortstate *state;
+ TuplesortPublic *base;
+ BTScanInsert indexScanKey;
TuplesortIndexBTreeArg *arg;
- MemoryContext oldcontext;
- int i;
+ MemoryContext oldcontext;
+ int i;
+ state = tuplesort_begin_common(workMem, coordinate, sortopt);
+ base = TuplesortstateGetPublic(state);
oldcontext = MemoryContextSwitchTo(base->maincontext);
arg = (TuplesortIndexBTreeArg *) palloc(sizeof(TuplesortIndexBTreeArg));
@@ -392,21 +389,18 @@ tuplesort_begin_index_btree(Relation heapRel,
}
Tuplesortstate *
-tuplesort_begin_index_hash(Relation heapRel,
- Relation indexRel,
- uint32 high_mask,
- uint32 low_mask,
- uint32 max_buckets,
- int workMem,
- SortCoordinate coordinate,
- int sortopt)
+tuplesort_begin_index_hash(Relation heapRel, Relation indexRel,
+ uint32 high_mask, uint32 low_mask,
+ uint32 max_buckets, int workMem,
+ SortCoordinate coordinate, int sortopt)
{
- Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate,
- sortopt);
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext;
- TuplesortIndexHashArg *arg;
+ Tuplesortstate *state;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ TuplesortIndexHashArg *arg;
+ state = tuplesort_begin_common(workMem, coordinate, sortopt);
+ base = TuplesortstateGetPublic(state);
oldcontext = MemoryContextSwitchTo(base->maincontext);
arg = (TuplesortIndexHashArg *) palloc(sizeof(TuplesortIndexHashArg));
@@ -444,19 +438,18 @@ tuplesort_begin_index_hash(Relation heapRel,
}
Tuplesortstate *
-tuplesort_begin_index_gist(Relation heapRel,
- Relation indexRel,
- int workMem,
- SortCoordinate coordinate,
+tuplesort_begin_index_gist(Relation heapRel, Relation indexRel,
+ int workMem, SortCoordinate coordinate,
int sortopt)
{
- Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate,
- sortopt);
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext;
+ Tuplesortstate *state;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
TuplesortIndexBTreeArg *arg;
- int i;
+ int i;
+ state = tuplesort_begin_common(workMem, coordinate, sortopt);
+ base = TuplesortstateGetPublic(state);
oldcontext = MemoryContextSwitchTo(base->maincontext);
arg = (TuplesortIndexBTreeArg *) palloc(sizeof(TuplesortIndexBTreeArg));
@@ -512,14 +505,15 @@ tuplesort_begin_datum(Oid datumType, Oid sortOperator, Oid sortCollation,
bool nullsFirstFlag, int workMem,
SortCoordinate coordinate, int sortopt)
{
- Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate,
- sortopt);
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortDatumArg *arg;
- MemoryContext oldcontext;
- int16 typlen;
- bool typbyval;
-
+ Tuplesortstate *state;
+ TuplesortPublic *base;
+ TuplesortDatumArg *arg;
+ MemoryContext oldcontext;
+ int16 typlen;
+ bool typbyval;
+
+ state = tuplesort_begin_common(workMem, coordinate, sortopt);
+ base = TuplesortstateGetPublic(state);
oldcontext = MemoryContextSwitchTo(base->maincontext);
arg = (TuplesortDatumArg *) palloc(sizeof(TuplesortDatumArg));
@@ -594,13 +588,16 @@ tuplesort_begin_datum(Oid datumType, Oid sortOperator, Oid sortCollation,
void
tuplesort_puttupleslot(Tuplesortstate *state, TupleTableSlot *slot)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->tuplecontext);
- TupleDesc tupDesc = (TupleDesc) base->arg;
- SortTuple stup;
- MinimalTuple tuple;
- HeapTupleData htup;
-
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ TupleDesc tupDesc;
+ SortTuple stup;
+ MinimalTuple tuple;
+ HeapTupleData htup;
+
+ base = TuplesortstateGetPublic(state);
+ tupDesc = (TupleDesc) base->arg;
+ oldcontext = MemoryContextSwitchTo(base->tuplecontext);
/* copy the tuple into sort storage */
tuple = ExecCopySlotMinimalTuple(slot);
stup.tuple = (void *) tuple;
@@ -627,11 +624,14 @@ tuplesort_puttupleslot(Tuplesortstate *state, TupleTableSlot *slot)
void
tuplesort_putheaptuple(Tuplesortstate *state, HeapTuple tup)
{
- SortTuple stup;
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->tuplecontext);
- TuplesortClusterArg *arg = (TuplesortClusterArg *) base->arg;
+ SortTuple stup;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ TuplesortClusterArg *arg;
+ base = TuplesortstateGetPublic(state);
+ oldcontext = MemoryContextSwitchTo(base->tuplecontext);
+ arg = (TuplesortClusterArg *) base->arg;
/* copy the tuple into sort storage */
tup = heap_copytuple(tup);
stup.tuple = (void *) tup;
@@ -665,11 +665,13 @@ tuplesort_putindextuplevalues(Tuplesortstate *state, Relation rel,
ItemPointer self, Datum *values,
bool *isnull)
{
- SortTuple stup;
- IndexTuple tuple;
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortIndexArg *arg = (TuplesortIndexArg *) base->arg;
+ SortTuple stup;
+ IndexTuple tuple;
+ TuplesortPublic *base;
+ TuplesortIndexArg *arg;
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortIndexArg *) base->arg;
stup.tuple = index_form_tuple_context(RelationGetDescr(rel), values,
isnull, base->tuplecontext);
tuple = ((IndexTuple) stup.tuple);
@@ -694,11 +696,14 @@ tuplesort_putindextuplevalues(Tuplesortstate *state, Relation rel,
void
tuplesort_putdatum(Tuplesortstate *state, Datum val, bool isNull)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->tuplecontext);
- TuplesortDatumArg *arg = (TuplesortDatumArg *) base->arg;
- SortTuple stup;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ TuplesortDatumArg *arg;
+ SortTuple stup;
+ base = TuplesortstateGetPublic(state);
+ oldcontext = MemoryContextSwitchTo(base->tuplecontext);
+ arg = (TuplesortDatumArg *) base->arg;
/*
* Pass-by-value types or null values are just stored directly in
* stup.datum1 (and stup.tuple is not used and set to NULL).
@@ -759,9 +764,12 @@ bool
tuplesort_gettupleslot(Tuplesortstate *state, bool forward, bool copy,
TupleTableSlot *slot, Datum *abbrev)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->sortcontext);
- SortTuple stup;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ SortTuple stup;
+
+ base = TuplesortstateGetPublic(state);
+ oldcontext = MemoryContextSwitchTo(base->sortcontext);
if (!tuplesort_gettuple_common(state, forward, &stup))
stup.tuple = NULL;
@@ -796,9 +804,12 @@ tuplesort_gettupleslot(Tuplesortstate *state, bool forward, bool copy,
HeapTuple
tuplesort_getheaptuple(Tuplesortstate *state, bool forward)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->sortcontext);
- SortTuple stup;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ SortTuple stup;
+
+ base = TuplesortstateGetPublic(state);
+ oldcontext = MemoryContextSwitchTo(base->sortcontext);
if (!tuplesort_gettuple_common(state, forward, &stup))
stup.tuple = NULL;
@@ -817,9 +828,12 @@ tuplesort_getheaptuple(Tuplesortstate *state, bool forward)
IndexTuple
tuplesort_getindextuple(Tuplesortstate *state, bool forward)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->sortcontext);
- SortTuple stup;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ SortTuple stup;
+
+ base = TuplesortstateGetPublic(state);
+ oldcontext = MemoryContextSwitchTo(base->sortcontext);
if (!tuplesort_gettuple_common(state, forward, &stup))
stup.tuple = NULL;
@@ -848,10 +862,14 @@ bool
tuplesort_getdatum(Tuplesortstate *state, bool forward,
Datum *val, bool *isNull, Datum *abbrev)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MemoryContext oldcontext = MemoryContextSwitchTo(base->sortcontext);
- TuplesortDatumArg *arg = (TuplesortDatumArg *) base->arg;
- SortTuple stup;
+ TuplesortPublic *base;
+ MemoryContext oldcontext;
+ TuplesortDatumArg *arg;
+ SortTuple stup;
+
+ base = TuplesortstateGetPublic(state);
+ oldcontext = MemoryContextSwitchTo(base->sortcontext);
+ arg = (TuplesortDatumArg *) base->arg;
if (!tuplesort_gettuple_common(state, forward, &stup))
{
@@ -910,20 +928,21 @@ removeabbrev_heap(Tuplesortstate *state, SortTuple *stups, int count)
static int
comparetup_heap(const SortTuple *a, const SortTuple *b, Tuplesortstate *state)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- SortSupport sortKey = base->sortKeys;
- HeapTupleData ltup;
- HeapTupleData rtup;
- TupleDesc tupDesc;
- int nkey;
- int32 compare;
- AttrNumber attno;
- Datum datum1,
- datum2;
- bool isnull1,
- isnull2;
-
-
+ TuplesortPublic *base;
+ SortSupport sortKey;
+ HeapTupleData ltup,
+ rtup;
+ TupleDesc tupDesc;
+ int nkey;
+ int32 compare;
+ AttrNumber attno;
+ Datum datum1,
+ datum2;
+ bool isnull1,
+ isnull2;
+
+ base = TuplesortstateGetPublic(state);
+ sortKey = base->sortKeys;
/* Compare the leading sort key */
compare = ApplySortComparator(a->datum1, a->isnull1,
b->datum1, b->isnull1,
@@ -973,15 +992,17 @@ comparetup_heap(const SortTuple *a, const SortTuple *b, Tuplesortstate *state)
static void
writetup_heap(Tuplesortstate *state, LogicalTape *tape, SortTuple *stup)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- MinimalTuple tuple = (MinimalTuple) stup->tuple;
-
- /* the part of the MinimalTuple we'll write: */
- char *tupbody = (char *) tuple + MINIMAL_TUPLE_DATA_OFFSET;
- unsigned int tupbodylen = tuple->t_len - MINIMAL_TUPLE_DATA_OFFSET;
-
- /* total on-disk footprint: */
- unsigned int tuplen = tupbodylen + sizeof(int);
+ TuplesortPublic *base;
+ MinimalTuple tuple;
+ char *tupbody; /* the part of the MinimalTuple we'll write: */
+ unsigned int tupbodylen,
+ tuplen; /* total on-disk footprint: */
+
+ base = TuplesortstateGetPublic(state);
+ tuple = (MinimalTuple) stup->tuple;
+ tupbody = (char *) tuple + MINIMAL_TUPLE_DATA_OFFSET;
+ tupbodylen = tuple->t_len - MINIMAL_TUPLE_DATA_OFFSET;
+ tuplen = tupbodylen + sizeof(int);
LogicalTapeWrite(tape, (void *) &tuplen, sizeof(tuplen));
LogicalTapeWrite(tape, (void *) tupbody, tupbodylen);
@@ -993,13 +1014,18 @@ static void
readtup_heap(Tuplesortstate *state, SortTuple *stup,
LogicalTape *tape, unsigned int len)
{
- unsigned int tupbodylen = len - sizeof(int);
- unsigned int tuplen = tupbodylen + MINIMAL_TUPLE_DATA_OFFSET;
- MinimalTuple tuple = (MinimalTuple) tuplesort_readtup_alloc(state, tuplen);
- char *tupbody = (char *) tuple + MINIMAL_TUPLE_DATA_OFFSET;
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- HeapTupleData htup;
-
+ unsigned int tupbodylen,
+ tuplen;
+ MinimalTuple tuple;
+ char *tupbody;
+ TuplesortPublic *base;
+ HeapTupleData htup;
+
+ tupbodylen = len - sizeof(int);
+ tuplen = tupbodylen + MINIMAL_TUPLE_DATA_OFFSET;
+ tuple = (MinimalTuple) tuplesort_readtup_alloc(state, tuplen);
+ tupbody = (char *) tuple + MINIMAL_TUPLE_DATA_OFFSET;
+ base = TuplesortstateGetPublic(state);
/* read in the tuple proper */
tuple->t_len = tuplen;
LogicalTapeReadExact(tape, tupbody, tupbodylen);
@@ -1023,9 +1049,12 @@ readtup_heap(Tuplesortstate *state, SortTuple *stup,
static void
removeabbrev_cluster(Tuplesortstate *state, SortTuple *stups, int count)
{
- int i;
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortClusterArg *arg = (TuplesortClusterArg *) base->arg;
+ int i;
+ TuplesortPublic *base;
+ TuplesortClusterArg *arg;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortClusterArg *) base->arg;
for (i = 0; i < count; i++)
{
@@ -1043,19 +1072,22 @@ static int
comparetup_cluster(const SortTuple *a, const SortTuple *b,
Tuplesortstate *state)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortClusterArg *arg = (TuplesortClusterArg *) base->arg;
- SortSupport sortKey = base->sortKeys;
- HeapTuple ltup;
- HeapTuple rtup;
- TupleDesc tupDesc;
- int nkey;
- int32 compare;
- Datum datum1,
- datum2;
- bool isnull1,
- isnull2;
-
+ TuplesortPublic *base;
+ TuplesortClusterArg *arg;
+ SortSupport sortKey;
+ HeapTuple ltup,
+ rtup;
+ TupleDesc tupDesc;
+ int nkey;
+ int32 compare;
+ Datum datum1,
+ datum2;
+ bool isnull1,
+ isnull2;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortClusterArg *) base->arg;
+ sortKey = base->sortKeys;
/* Be prepared to compare additional sort keys */
ltup = (HeapTuple) a->tuple;
rtup = (HeapTuple) b->tuple;
@@ -1156,9 +1188,13 @@ comparetup_cluster(const SortTuple *a, const SortTuple *b,
static void
writetup_cluster(Tuplesortstate *state, LogicalTape *tape, SortTuple *stup)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- HeapTuple tuple = (HeapTuple) stup->tuple;
- unsigned int tuplen = tuple->t_len + sizeof(ItemPointerData) + sizeof(int);
+ TuplesortPublic *base;
+ HeapTuple tuple;
+ unsigned int tuplen;
+
+ base = TuplesortstateGetPublic(state);
+ tuple = (HeapTuple) stup->tuple;
+ tuplen = tuple->t_len + sizeof(ItemPointerData) + sizeof(int);
/* We need to store t_self, but not other fields of HeapTupleData */
LogicalTapeWrite(tape, &tuplen, sizeof(tuplen));
@@ -1172,11 +1208,15 @@ static void
readtup_cluster(Tuplesortstate *state, SortTuple *stup,
LogicalTape *tape, unsigned int tuplen)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortClusterArg *arg = (TuplesortClusterArg *) base->arg;
- unsigned int t_len = tuplen - sizeof(ItemPointerData) - sizeof(int);
- HeapTuple tuple = (HeapTuple) tuplesort_readtup_alloc(state,
- t_len + HEAPTUPLESIZE);
+ TuplesortPublic *base;
+ TuplesortClusterArg *arg;
+ unsigned int t_len;
+ HeapTuple tuple;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortClusterArg *) base->arg;
+ t_len = tuplen - sizeof(ItemPointerData) - sizeof(int);
+ tuple = (HeapTuple) tuplesort_readtup_alloc(state, t_len + HEAPTUPLESIZE);
/* Reconstruct the HeapTupleData header */
tuple->t_data = (HeapTupleHeader) ((char *) tuple + HEAPTUPLESIZE);
@@ -1200,8 +1240,11 @@ readtup_cluster(Tuplesortstate *state, SortTuple *stup,
static void
freestate_cluster(Tuplesortstate *state)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortClusterArg *arg = (TuplesortClusterArg *) base->arg;
+ TuplesortPublic *base;
+ TuplesortClusterArg *arg;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortClusterArg *) base->arg;
/* Free any execution state created for CLUSTER case */
if (arg->estate != NULL)
@@ -1224,9 +1267,12 @@ freestate_cluster(Tuplesortstate *state)
static void
removeabbrev_index(Tuplesortstate *state, SortTuple *stups, int count)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortIndexArg *arg = (TuplesortIndexArg *) base->arg;
- int i;
+ TuplesortPublic *base;
+ TuplesortIndexArg *arg;
+ int i;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortIndexArg *) base->arg;
for (i = 0; i < count; i++)
{
@@ -1249,22 +1295,24 @@ comparetup_index_btree(const SortTuple *a, const SortTuple *b,
* is also special handling for enforcing uniqueness, and special
* treatment for equal keys at the end.
*/
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortIndexBTreeArg *arg = (TuplesortIndexBTreeArg *) base->arg;
- SortSupport sortKey = base->sortKeys;
- IndexTuple tuple1;
- IndexTuple tuple2;
- int keysz;
- TupleDesc tupDes;
- bool equal_hasnull = false;
- int nkey;
- int32 compare;
- Datum datum1,
- datum2;
- bool isnull1,
- isnull2;
-
-
+ TuplesortPublic *base;
+ TuplesortIndexBTreeArg *arg;
+ SortSupport sortKey;
+ IndexTuple tuple1,
+ tuple2;
+ int keysz;
+ TupleDesc tupDes;
+ bool equal_hasnull = false;
+ int nkey;
+ int32 compare;
+ Datum datum1,
+ datum2;
+ bool isnull1,
+ isnull2;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortIndexBTreeArg *) base->arg;
+ sortKey = base->sortKeys;
/* Compare the leading sort key */
compare = ApplySortComparator(a->datum1, a->isnull1,
b->datum1, b->isnull1,
@@ -1380,13 +1428,15 @@ static int
comparetup_index_hash(const SortTuple *a, const SortTuple *b,
Tuplesortstate *state)
{
- Bucket bucket1;
- Bucket bucket2;
- IndexTuple tuple1;
- IndexTuple tuple2;
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortIndexHashArg *arg = (TuplesortIndexHashArg *) base->arg;
-
+ Bucket bucket1,
+ bucket2;
+ IndexTuple tuple1,
+ tuple2;
+ TuplesortPublic *base;
+ TuplesortIndexHashArg *arg;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortIndexHashArg *) base->arg;
/*
* Fetch hash keys and mask off bits we don't want to sort by. We know
* that the first column of the index tuple is the hash key.
@@ -1436,10 +1486,12 @@ comparetup_index_hash(const SortTuple *a, const SortTuple *b,
static void
writetup_index(Tuplesortstate *state, LogicalTape *tape, SortTuple *stup)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- IndexTuple tuple = (IndexTuple) stup->tuple;
- unsigned int tuplen;
+ TuplesortPublic *base;
+ IndexTuple tuple;
+ unsigned int tuplen;
+ base = TuplesortstateGetPublic(state);
+ tuple = (IndexTuple) stup->tuple;
tuplen = IndexTupleSize(tuple) + sizeof(tuplen);
LogicalTapeWrite(tape, (void *) &tuplen, sizeof(tuplen));
LogicalTapeWrite(tape, (void *) tuple, IndexTupleSize(tuple));
@@ -1451,10 +1503,15 @@ static void
readtup_index(Tuplesortstate *state, SortTuple *stup,
LogicalTape *tape, unsigned int len)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortIndexArg *arg = (TuplesortIndexArg *) base->arg;
- unsigned int tuplen = len - sizeof(unsigned int);
- IndexTuple tuple = (IndexTuple) tuplesort_readtup_alloc(state, tuplen);
+ TuplesortPublic *base;
+ TuplesortIndexArg *arg;
+ unsigned int tuplen;
+ IndexTuple tuple;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortIndexArg *) base->arg;
+ tuplen = len - sizeof(unsigned int);
+ tuple = (IndexTuple) tuplesort_readtup_alloc(state, tuplen);
LogicalTapeReadExact(tape, tuple, tuplen);
if (base->sortopt & TUPLESORT_RANDOMACCESS) /* need trailing length word? */
@@ -1483,9 +1540,10 @@ removeabbrev_datum(Tuplesortstate *state, SortTuple *stups, int count)
static int
comparetup_datum(const SortTuple *a, const SortTuple *b, Tuplesortstate *state)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- int compare;
+ TuplesortPublic *base;
+ int compare;
+ base = TuplesortstateGetPublic(state);
compare = ApplySortComparator(a->datum1, a->isnull1,
b->datum1, b->isnull1,
base->sortKeys);
@@ -1505,11 +1563,14 @@ comparetup_datum(const SortTuple *a, const SortTuple *b, Tuplesortstate *state)
static void
writetup_datum(Tuplesortstate *state, LogicalTape *tape, SortTuple *stup)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- TuplesortDatumArg *arg = (TuplesortDatumArg *) base->arg;
- void *waddr;
- unsigned int tuplen;
- unsigned int writtenlen;
+ TuplesortPublic *base;
+ TuplesortDatumArg *arg;
+ void *waddr;
+ unsigned int tuplen,
+ writtenlen;
+
+ base = TuplesortstateGetPublic(state);
+ arg = (TuplesortDatumArg *) base->arg;
if (stup->isnull1)
{
@@ -1540,8 +1601,11 @@ static void
readtup_datum(Tuplesortstate *state, SortTuple *stup,
LogicalTape *tape, unsigned int len)
{
- TuplesortPublic *base = TuplesortstateGetPublic(state);
- unsigned int tuplen = len - sizeof(unsigned int);
+ TuplesortPublic *base;
+ unsigned int tuplen;
+
+ base = TuplesortstateGetPublic(state);
+ tuplen = len - sizeof(unsigned int);
if (tuplen == 0)
{
--
2.24.3 (Apple Git-128)