diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike index fc927b66f2cdc90ab6392b24e9125ecd86ae5cb0..aaebf06eb886f442a7ad7ed23a787e1c92f379e0 100644 --- a/lib/modules/Sql.pmod/pgsql.pike +++ b/lib/modules/Sql.pmod/pgsql.pike @@ -119,10 +119,6 @@ private string _sprintf(int type, void|mapping flags) { return res; } -//! @decl void create() -//! @decl void create(string host, void|string database, void|string user,@ -//! void|string password, void|mapping(string:mixed) options) -//! //! With no arguments, this function initialises (reinitialises if a //! connection has been set up previously) a connection to the //! PostgreSQL backend. Since PostgreSQL requires a database to be @@ -280,8 +276,6 @@ protected void create(void|string host, void|string database, return 0; } -//! @decl int ping() -//! //! Check whether the connection is alive. //! //! @returns @@ -1269,8 +1263,6 @@ private int reconnect(void|int force) { return 1; } -//! @decl void reload() -//! //! For PostgreSQL this function performs the same function as @[resync()]. //! //! @seealso @@ -1302,8 +1294,6 @@ private void sendsync() { c->start()->sendcmd(SYNCSEND); } -//! @decl void resync() -//! //! Resyncs the database session; typically used to make sure the session is //! not still in a dangling transaction. //! @@ -1693,9 +1683,6 @@ private inline void throwdelayederror(object parent) { .pgsql_util.throwdelayederror(parent); } -//! @decl Sql.pgsql_util.sql_result big_query(string query) -//! @decl Sql.pgsql_util.sql_result big_query(string query, mapping bindings) -//! //! This is the only provided interface which allows you to query the //! database. If you wish to use the simpler @[Sql.Sql()->query()] function, //! you need to use the @[Sql.Sql] generic SQL-object. @@ -1900,14 +1887,18 @@ private inline void throwdelayederror(object parent) { ? "" : PTSTMTPREFIX+int2hex(ptstmtcount++); else if(syncparse) portal._unnamedstatementkey=unnamedstatement->lock(1); + PD("Parse statement %O=%O\n",preparedname,q); + plugbuffer=c->start()->add_int8('P') + ->add_hstring(({preparedname,0,q,"\0\0\0"}),4,4) +#if 0 // Even though the protocol doesn't require the Parse command to be // followed by a flush, it makes a VERY noticeable difference in // performance if it is omitted; seems like a flaw in the PostgreSQL // server v8.3.3 // In v8.4 and later, things speed up slightly when it is omitted. - PD("Parse statement %O=%O\n",preparedname,q); - plugbuffer=c->start()->add_int8('P') - ->add_hstring(({preparedname,0,q,"\0\0\0"}),4,4); //->add(PGFLUSH); + ->add(PGFLUSH) +#endif + ; } portal._preparedname=preparedname; if(!tp || !tp.datatypeoid) { diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index b176b7ace24eefb7bc0bdfcbdebbeb8dfc69aae2..9dc5f6105fc3d6bcb4a7a0bfa00a8598ed713e5e 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -529,6 +529,12 @@ class sql_result { return sizeof(datarowtypes); } + //! @note + //! This method returns the number of rows already received from + //! the database for the current query. Note that this number + //! can still increase between subsequent calls if the results from + //! the query are not complete yet. This function is only guaranteed to + //! return the correct count after EOF has been reached. //! @seealso //! @[Sql.sql_result()->num_rows()] /*semi*/final int num_rows() { diff --git a/lib/modules/Sql.pmod/postgres.pike b/lib/modules/Sql.pmod/postgres.pike index ad5203f443f9a6a9ae04569c629a09a2feb64cb9..aa853735af6b3580edf965808066e9fbce8fdbad 100644 --- a/lib/modules/Sql.pmod/postgres.pike +++ b/lib/modules/Sql.pmod/postgres.pike @@ -472,7 +472,7 @@ int|object streaming_query(object|string q, //! onto //! @tt{pgsql://[user[:password]@@][hostname][:port][/database]@} //! -//! The reason this happens, is because Pike was compiled without libpq +//! This only happens if Pike was compiled without libpq //! support, therefore Pike falls back to the faster, smaller memory //! footprint, more advanced and native PostgreSQL driver called @[Sql.pgsql]. //!