00001 /*------------------------------------------------------------------------- 00002 * 00003 * be-fsstubs.h 00004 * 00005 * 00006 * 00007 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00008 * Portions Copyright (c) 1994, Regents of the University of California 00009 * 00010 * src/include/libpq/be-fsstubs.h 00011 * 00012 *------------------------------------------------------------------------- 00013 */ 00014 #ifndef BE_FSSTUBS_H 00015 #define BE_FSSTUBS_H 00016 00017 #include "fmgr.h" 00018 00019 /* 00020 * LO functions available via pg_proc entries 00021 */ 00022 extern Datum lo_import(PG_FUNCTION_ARGS); 00023 extern Datum lo_import_with_oid(PG_FUNCTION_ARGS); 00024 extern Datum lo_export(PG_FUNCTION_ARGS); 00025 00026 extern Datum lo_creat(PG_FUNCTION_ARGS); 00027 extern Datum lo_create(PG_FUNCTION_ARGS); 00028 00029 extern Datum lo_open(PG_FUNCTION_ARGS); 00030 extern Datum lo_close(PG_FUNCTION_ARGS); 00031 00032 extern Datum loread(PG_FUNCTION_ARGS); 00033 extern Datum lowrite(PG_FUNCTION_ARGS); 00034 00035 extern Datum lo_lseek(PG_FUNCTION_ARGS); 00036 extern Datum lo_tell(PG_FUNCTION_ARGS); 00037 extern Datum lo_lseek64(PG_FUNCTION_ARGS); 00038 extern Datum lo_tell64(PG_FUNCTION_ARGS); 00039 extern Datum lo_unlink(PG_FUNCTION_ARGS); 00040 extern Datum lo_truncate(PG_FUNCTION_ARGS); 00041 extern Datum lo_truncate64(PG_FUNCTION_ARGS); 00042 00043 /* 00044 * compatibility option for access control 00045 */ 00046 extern bool lo_compat_privileges; 00047 00048 /* 00049 * These are not fmgr-callable, but are available to C code. 00050 * Probably these should have had the underscore-free names, 00051 * but too late now... 00052 */ 00053 extern int lo_read(int fd, char *buf, int len); 00054 extern int lo_write(int fd, const char *buf, int len); 00055 00056 /* 00057 * Cleanup LOs at xact commit/abort 00058 */ 00059 extern void AtEOXact_LargeObject(bool isCommit); 00060 extern void AtEOSubXact_LargeObject(bool isCommit, SubTransactionId mySubid, 00061 SubTransactionId parentSubid); 00062 00063 #endif /* BE_FSSTUBS_H */