与 COPY 命令相关的函数

PostgreSQL 里的 COPY 命令里有用于 libpq 里从网络联接读出或者写入的选项.因此,这些函数有必要直接访问网络联接,以便应用可以充分利用这个功能.

这些函数应该只在从 PQexecPQgetResult 获得了 PGRES_COPY_OUTPGRES_COPY_IN 结果对象的情况下执行.

在使用 PQgetResult 时,应用应该对 PGRES_COPY_OUT 的结果做出反应:重复调用 PQgetline,并且在收到结束行时调用 PQendcopy.然后应该返回到 PQgetResult 循环直到 PQgetResult 返回 NULL.类似的 PGRES_COPY_IN 结果是用一系列 PQputline 调用最后跟着 PQendcopy,然后返回到 PQgetResult 循环.这样的排列将保证嵌入到一系列SQL 命令里的 copy in 或 copy out 命令将被正确执行.

旧的应用大多通过 PQexec 提交一个 copy in 或 copy out 命令并且假设在 PQendcopy 后事务完成.这样只有在 copy in/out 是查询字符串里的唯一的 SQL 命令才能正确工作.