aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils/psort.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/utils/psort.h')
-rw-r--r--src/include/utils/psort.h88
1 files changed, 4 insertions, 84 deletions
diff --git a/src/include/utils/psort.h b/src/include/utils/psort.h
index 9a100bad0d8..5f7a638442d 100644
--- a/src/include/utils/psort.h
+++ b/src/include/utils/psort.h
@@ -1,101 +1,21 @@
/*-------------------------------------------------------------------------
*
* psort.h
- *
- *
+ * Polyphase merge sort.
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: psort.h,v 1.22 1999/10/13 15:02:28 tgl Exp $
+ * $Id: psort.h,v 1.23 1999/10/16 19:49:28 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef PSORT_H
#define PSORT_H
-#include "access/relscan.h"
+#include "access/htup.h"
+#include "access/skey.h"
#include "nodes/plannodes.h"
-#include "storage/buffile.h"
-#include "utils/lselect.h"
-
-#define MAXTAPES 7 /* See Knuth Fig. 70, p273 */
-
-struct tape
-{
- int tp_dummy; /* (D) */
- int tp_fib; /* (A) */
- BufFile *tp_file; /* (TAPE) */
- struct tape *tp_prev;
-};
-
-struct cmplist
-{
- int cp_attn; /* attribute number */
- int cp_num; /* comparison function code */
- int cp_rev; /* invert comparison flag */
- struct cmplist *cp_next; /* next in chain */
-};
-
-/* This structure preserves the state of psort between calls from different
- * nodes to its interface functions. Basically, it includes all of the global
- * variables in psort. In case you were wondering, pointers to these structures
- * are included in Sort node structures. -Rex 2.6.1995
- */
-typedef struct Psortstate
-{
- LeftistContextData treeContext;
-
- int TapeRange;
- int Level;
- int TotalDummy;
- struct tape Tape[MAXTAPES];
-
- int BytesRead;
- int BytesWritten;
- int tupcount;
-
- struct leftist *Tuples;
-
- BufFile *psort_grab_file;
- long psort_current; /* array index (only used if not tape) */
- int psort_saved_fileno; /* upper bits of psort_saved, if tape */
- long psort_saved; /* could be file offset, or array index */
- bool using_tape_files;
- bool all_fetched; /* this is for cursors */
-
- HeapTuple *memtuples;
-} Psortstate;
-
-#ifdef EBUG
-#include "storage/buf.h"
-#include "storage/bufmgr.h"
-
-#define PDEBUG(PROC, S1)\
-elog(DEBUG, "%s:%d>> PROC: %s.", __FILE__, __LINE__, S1)
-
-#define PDEBUG2(PROC, S1, D1)\
-elog(DEBUG, "%s:%d>> PROC: %s %d.", __FILE__, __LINE__, S1, D1)
-
-#define PDEBUG4(PROC, S1, D1, S2, D2)\
-elog(DEBUG, "%s:%d>> PROC: %s %d, %s %d.", __FILE__, __LINE__, S1, D1, S2, D2)
-
-#define VDEBUG(VAR, FMT)\
-elog(DEBUG, "%s:%d>> VAR =FMT", __FILE__, __LINE__, VAR)
-
-#define ASSERT(EXPR, STR)\
-if (!(EXPR)) elog(FATAL, "%s:%d>> %s", __FILE__, __LINE__, STR)
-
-#define TRACE(VAL, CODE)\
-if (1) CODE; else
-
-#else
-#define PDEBUG(MSG)
-#define VDEBUG(VAR, FMT)
-#define ASSERT(EXPR, MSG)
-#define TRACE(VAL, CODE)
-#endif
-/* psort.c */
extern bool psort_begin(Sort *node, int nkeys, ScanKey key);
extern HeapTuple psort_grabtuple(Sort *node, bool *should_free);
extern void psort_markpos(Sort *node);