/
balmaster
/
postgres
Обзор
Документация
Войти
/
balmaster
/
postgres
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/include/commands/copyapi.h
105 строк
3 KB
Bruce Momjian
Update copyright for 2026
01 янв 2026, 21:24
01 янв 2026, 21:24
451c439
Код
Авторство
О чём код?
/*------------------------------------------------------------------------- * * copyapi.h * API for COPY TO/FROM handlers * * * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/commands/copyapi.h * *------------------------------------------------------------------------- */ #ifndef COPYAPI_H #define COPYAPI_H #include "commands/copy.h" /* * API structure for a COPY TO format implementation. Note this must be * allocated in a server-lifetime manner, typically as a static const struct. */ typedef struct CopyToRoutine { /* * Set output function information. This callback is called once at the * beginning of COPY TO. * * 'finfo' can be optionally filled to provide the catalog information of * the output function. * * 'atttypid' is the OID of data type used by the relation's attribute. */ void (*CopyToOutFunc) (CopyToState cstate, Oid atttypid, FmgrInfo *finfo); /* * Start a COPY TO. This callback is called once at the beginning of COPY * TO. * * 'tupDesc' is the tuple descriptor of the relation from where the data * is read. */ void (*CopyToStart) (CopyToState cstate, TupleDesc tupDesc); /* * Write one row stored in 'slot' to the destination. */ void (*CopyToOneRow) (CopyToState cstate, TupleTableSlot *slot); /* * End a COPY TO. This callback is called once at the end of COPY TO. */ void (*CopyToEnd) (CopyToState cstate); } CopyToRoutine; /* * API structure for a COPY FROM format implementation. Note this must be * allocated in a server-lifetime manner, typically as a static const struct. */ typedef struct CopyFromRoutine { /* * Set input function information. This callback is called once at the * beginning of COPY FROM. * * 'finfo' can be optionally filled to provide the catalog information of * the input function. * * 'typioparam' can be optionally filled to define the OID of the type to * pass to the input function.'atttypid' is the OID of data type used by * the relation's attribute. */ void (*CopyFromInFunc) (CopyFromState cstate, Oid atttypid, FmgrInfo *finfo, Oid *typioparam); /* * Start a COPY FROM. This callback is called once at the beginning of * COPY FROM. * * 'tupDesc' is the tuple descriptor of the relation where the data needs * to be copied. This can be used for any initialization steps required by * a format. */ void (*CopyFromStart) (CopyFromState cstate, TupleDesc tupDesc); /* * Read one row from the source and fill *values and *nulls. * * 'econtext' is used to evaluate default expression for each column that * is either not read from the file or is using the DEFAULT option of COPY * FROM. It is NULL if no default values are used. * * Returns false if there are no more tuples to read. */ bool (*CopyFromOneRow) (CopyFromState cstate, ExprContext *econtext, Datum *values, bool *nulls); /* * End a COPY FROM. This callback is called once at the end of COPY FROM. */ void (*CopyFromEnd) (CopyFromState cstate); } CopyFromRoutine; #endif /* COPYAPI_H */