Export the external file reader used in COPY FROM as APIs.

They are expected to be used by extension modules like file_fdw.
There are no user-visible changes.

Itagaki Takahiro
Reviewed and tested by Kevin Grittner and Noah Misch.
This commit is contained in:
Itagaki Takahiro 2011-02-16 11:19:11 +09:00
parent 1cc19cc358
commit 8ddc05fb01
2 changed files with 771 additions and 533 deletions

File diff suppressed because it is too large Load Diff

View File

@ -14,12 +14,24 @@
#ifndef COPY_H #ifndef COPY_H
#define COPY_H #define COPY_H
#include "nodes/execnodes.h"
#include "nodes/parsenodes.h" #include "nodes/parsenodes.h"
#include "tcop/dest.h" #include "tcop/dest.h"
typedef struct CopyStateData *CopyState;
extern uint64 DoCopy(const CopyStmt *stmt, const char *queryString); extern uint64 DoCopy(const CopyStmt *stmt, const char *queryString);
extern CopyState BeginCopyFrom(Relation rel, const char *filename,
List *attnamelist, List *options);
extern void EndCopyFrom(CopyState cstate);
extern bool NextCopyFrom(CopyState cstate, ExprContext *econtext,
Datum *values, bool *nulls, Oid *tupleOid);
extern bool NextCopyFromRawFields(CopyState cstate,
char ***fields, int *nfields);
extern void CopyFromErrorCallback(void *arg);
extern DestReceiver *CreateCopyDestReceiver(void); extern DestReceiver *CreateCopyDestReceiver(void);
#endif /* COPY_H */ #endif /* COPY_H */