Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
psort.h
Package: postgresql-6.5.2.tar.gz [view]
Upload User: blenddy
Upload Date: 2007-01-07
Package Size: 6495k
Code Size: 3k
Category:
Database system
Development Platform:
Unix_Linux
- /*-------------------------------------------------------------------------
- *
- * psort.h
- *
- *
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * $Id: psort.h,v 1.19.2.1 1999/07/30 17:07:22 scrappy Exp $
- *
- *-------------------------------------------------------------------------
- */
- #ifndef PSORT_H
- #define PSORT_H
- #include "access/relscan.h"
- #include "nodes/plannodes.h"
- #include "storage/fd.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; /* could be file offset, or array index */
- 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);
- extern void psort_restorepos(Sort *node);
- extern void psort_end(Sort *node);
- extern void psort_rescan(Sort *node);
- #endif /* PSORT_H */