diff --git a/packages/postgres/src/postgres3dyn.pp b/packages/postgres/src/postgres3dyn.pp index c72d064282..b434ef7a61 100644 --- a/packages/postgres/src/postgres3dyn.pp +++ b/packages/postgres/src/postgres3dyn.pp @@ -130,6 +130,8 @@ var { Set blocking/nonblocking connection to the backend } PQsetnonblocking : function (conn:PPGconn; arg:longint):longint;cdecl; PQisnonblocking : function (conn:PPGconn):longint;cdecl; + PQisthreadsafe : function ():longint;cdecl; + { Force the write buffer to be written (or at least try) } PQflush : function (conn:PPGconn):longint;cdecl; { @@ -162,6 +164,8 @@ var PQgetvalue : function (res:PPGresult; tup_num:longint; field_num:longint):Pchar;cdecl; PQgetlength : function (res:PPGresult; tup_num:longint; field_num:longint):longint;cdecl; PQgetisnull : function (res:PPGresult; tup_num:longint; field_num:longint):longint;cdecl; + PQnparams : function (res:PPGresult):longint;cdecl; + PQparamtype : function (res:PPGresult; param_num:longint):Oid;cdecl; { Delete a PGresult } PQclear : procedure (res:PPGresult);cdecl; { For freeing other alloc'd results, such as PGnotify structs } @@ -178,9 +182,15 @@ var } PQmakeEmptyPGresult : function (conn:PPGconn; status:TExecStatusType):PPGresult;cdecl; { Quoting strings before inclusion in queries. } + PQescapeStringConn : function (conn:PPGconn; str:Pcchar; from:Pcchar; length:size_t; error:Pcint):size_t;cdecl; + PQescapeLiteral : function (conn:PPGconn; str:Pcchar; len:size_t):Pcchar;cdecl; + PQescapeIdentifier : function (conn:PPGconn; str:Pcchar; len:size_t):Pcchar;cdecl; + PQescapeByteaConn : function (conn:PPGconn; from:Pbyte; from_length:size_t; to_length:Psize_t):Pbyte;cdecl; + PQunescapeBytea : function (strtext:Pbyte; retbuflen:Psize_t):Pbyte;cdecl; +{ These forms are deprecated! } PQescapeString : function (till:Pchar; from:Pchar; length:size_t):size_t;cdecl; PQescapeBytea : function (bintext:Pbyte; binlen:size_t; bytealen:Psize_t):Pbyte;cdecl; - PQunescapeBytea : function (strtext:Pbyte; retbuflen:Psize_t):Pbyte;cdecl; + { === in fe-print.c === } { output stream } PQprint : procedure (fout:PFILE; res:PPGresult; ps:PPQprintOpt);cdecl; @@ -209,8 +219,10 @@ var lo_lseek : function (conn:PPGconn; fd:longint; offset:longint; whence:longint):longint;cdecl; lo_creat : function (conn:PPGconn; mode:longint):Oid;cdecl; lo_tell : function (conn:PPGconn; fd:longint):longint;cdecl; + lo_truncate : function (conn:PPGconn; fd:longint; len:size_t):longint;cdecl; lo_unlink : function (conn:PPGconn; lobjId:Oid):longint;cdecl; lo_import : function (conn:PPGconn; filename:Pchar):Oid;cdecl; + lo_import_with_oid : function (conn:PPGconn; filename:Pcchar; lobjId:Oid):Oid;cdecl; lo_export : function (conn:PPGconn; lobjId:Oid; filename:Pchar):longint;cdecl; { === in fe-misc.c === } { Determine length of multibyte encoded char at *s } @@ -218,6 +230,10 @@ var { Get encoding id from environment variable PGCLIENTENCODING } PQenv2encoding: function :longint;cdecl; +{ === in fe-auth.c === } + PQencryptPassword : function (passwd:Pcchar; user:Pcchar):Pcchar;cdecl; + + Function InitialisePostgres3(Const libpath : ansistring) : integer; Procedure InitialisePostgres3; Procedure ReleasePostgres3; @@ -327,6 +343,7 @@ begin pointer(PQendcopy) := GetProcedureAddress(Postgres3LibraryHandle,'PQendcopy'); pointer(PQsetnonblocking) := GetProcedureAddress(Postgres3LibraryHandle,'PQsetnonblocking'); pointer(PQisnonblocking) := GetProcedureAddress(Postgres3LibraryHandle,'PQisnonblocking'); + pointer(PQisthreadsafe) := GetProcedureAddress(Postgres3LibraryHandle,'PQisthreadsafe'); pointer(PQflush) := GetProcedureAddress(Postgres3LibraryHandle,'PQflush'); pointer(PQfn) := GetProcedureAddress(Postgres3LibraryHandle,'PQfn'); pointer(PQresultStatus) := GetProcedureAddress(Postgres3LibraryHandle,'PQresultStatus'); @@ -351,12 +368,18 @@ begin pointer(PQgetvalue) := GetProcedureAddress(Postgres3LibraryHandle,'PQgetvalue'); pointer(PQgetlength) := GetProcedureAddress(Postgres3LibraryHandle,'PQgetlength'); pointer(PQgetisnull) := GetProcedureAddress(Postgres3LibraryHandle,'PQgetisnull'); + pointer(PQnparams) := GetProcedureAddress(Postgres3LibraryHandle,'PQnparams'); + pointer(PQparamtype) := GetProcedureAddress(Postgres3LibraryHandle,'PQparamtype'); pointer(PQclear) := GetProcedureAddress(Postgres3LibraryHandle,'PQclear'); pointer(PQfreemem) := GetProcedureAddress(Postgres3LibraryHandle,'PQfreemem'); pointer(PQmakeEmptyPGresult) := GetProcedureAddress(Postgres3LibraryHandle,'PQmakeEmptyPGresult'); + pointer(PQescapeStringConn) := GetProcedureAddress(Postgres3LibraryHandle,'PQescapeStringConn'); + pointer(PQescapeLiteral) := GetProcedureAddress(Postgres3LibraryHandle,'PQescapeLiteral'); + pointer(PQescapeIdentifier) := GetProcedureAddress(Postgres3LibraryHandle,'PQescapeIdentifier'); + pointer(PQescapeByteaConn) := GetProcedureAddress(Postgres3LibraryHandle,'PQescapeByteaConn'); + pointer(PQunescapeBytea) := GetProcedureAddress(Postgres3LibraryHandle,'PQunescapeBytea'); pointer(PQescapeString) := GetProcedureAddress(Postgres3LibraryHandle,'PQescapeString'); pointer(PQescapeBytea) := GetProcedureAddress(Postgres3LibraryHandle,'PQescapeBytea'); - pointer(PQunescapeBytea) := GetProcedureAddress(Postgres3LibraryHandle,'PQunescapeBytea'); pointer(PQprint) := GetProcedureAddress(Postgres3LibraryHandle,'PQprint'); pointer(PQdisplayTuples) := GetProcedureAddress(Postgres3LibraryHandle,'PQdisplayTuples'); pointer(PQprintTuples) := GetProcedureAddress(Postgres3LibraryHandle,'PQprintTuples'); @@ -367,11 +390,14 @@ begin pointer(lo_lseek) := GetProcedureAddress(Postgres3LibraryHandle,'lo_lseek'); pointer(lo_creat) := GetProcedureAddress(Postgres3LibraryHandle,'lo_creat'); pointer(lo_tell) := GetProcedureAddress(Postgres3LibraryHandle,'lo_tell'); + pointer(lo_truncate) := GetProcedureAddress(Postgres3LibraryHandle,'lo_truncate'); pointer(lo_unlink) := GetProcedureAddress(Postgres3LibraryHandle,'lo_unlink'); pointer(lo_import) := GetProcedureAddress(Postgres3LibraryHandle,'lo_import'); + pointer(lo_import_with_oid) := GetProcedureAddress(Postgres3LibraryHandle,'lo_import_with_oid'); pointer(lo_export) := GetProcedureAddress(Postgres3LibraryHandle,'lo_export'); pointer(PQmblen) := GetProcedureAddress(Postgres3LibraryHandle,'PQmblen'); pointer(PQenv2encoding) := GetProcedureAddress(Postgres3LibraryHandle,'PQenv2encoding'); + pointer(PQencryptPassword) := GetProcedureAddress(Postgres3LibraryHandle,'PQencryptPassword'); InitialiseDllist(libpath); end