autodoc.git
/
modref.xml
version
»
Context lines:
10
20
40
80
file
none
3
autodoc.git/modref.xml:1:
<?xml version='1.0' encoding='utf-8'?>
-
<manual time-stamp='2017-11-
21
' version='Pike v8.1.11'>
+
<manual time-stamp='2017-11-
22
' version='Pike v8.1.11'>
<dir name='./ignored'> <file name='./ignored/ignored'> <chapter number='1' title='ignored'> <autodoc> <namespace name=''> <doc><text><p>Symbols implicitly inherited from the virtual base class.</p> <p> These symbols exist mainly to simplify implementation of the corresponding lfuns.</p> </text><group><seealso/><text><p><ref resolved='lfun::'>lfun::</ref></p> </text></group></doc>
autodoc.git/modref.xml:1107:
</docgroup> </class> <class name='DES3'> <docgroup homogen-name='CBC' homogen-type='inherit'> <inherit name='CBC'><classname resolved='8.0::Crypto.CBC'>Crypto.CBC</classname></inherit> </docgroup> </class> <class name='DHKeyExchange'> <doc><text><p>Implements Diffie-Hellman key-exchange.</p> <p> The following key exchange methods are implemented here:
-
<ref resolved='
7.8
::SSL.Constants.KeyExchangeType.KE_dhe_dss'>KE_dhe_dss</ref>, <ref resolved='
7.8
::SSL.Constants.KeyExchangeType.KE_dhe_rsa'>KE_dhe_rsa</ref> and <ref resolved='
7.8
::SSL.Constants.KeyExchangeType.KE_dh_anon'>KE_dh_anon</ref>.</p>
+
<ref resolved='
predef
::SSL.Constants.KeyExchangeType.KE_dhe_dss'>KE_dhe_dss</ref>, <ref resolved='
predef
::SSL.Constants.KeyExchangeType.KE_dhe_rsa'>KE_dhe_rsa</ref> and <ref resolved='
predef
::SSL.Constants.KeyExchangeType.KE_dh_anon'>KE_dh_anon</ref>.</p>
</text></doc> <docgroup homogen-name='create' homogen-type='method'> <method name='create'><modifiers><protected/></modifiers> <arguments><argument name='p'><type><object resolved='7.8::SSL.Cipher.DHParameters'>DHParameters</object></type></argument></arguments> <returntype><void/></returntype> </method> </docgroup> </class> <class name='DHParameters'> <doc><text><p>Diffie-Hellman parameters.</p>
autodoc.git/modref.xml:1891:
<variable name='rsa'><type><object resolved='7.8::Crypto.RSA'>Crypto.RSA</object></type></variable> </docgroup> <docgroup homogen-name='set_cipher_suite' homogen-type='method'><doc><text><p>Sets the proper authentication method and cipher specification for the given cipher <ref resolved='7.8::SSL.session.set_cipher_suite.suite'>suite</ref> and <ref>verison</ref>.</p> </text></doc> <method name='set_cipher_suite'> <arguments><argument name='suite'><type><int/></type></argument><argument name='version'><type><or><object resolved='7.8::SSL.Constants.ProtocolVersion'>ProtocolVersion</object><int/></or></type></argument></arguments> <returntype><void/></returntype> </method> </docgroup>
-
<docgroup homogen-name='set_compression_method' homogen-type='method'><doc><text><p>Sets the compression method. Currently only <ref resolved='
predef
::SSL.Constants.CompressionType.COMPRESSION_null'>COMPRESSION_null</ref> is
+
<docgroup homogen-name='set_compression_method' homogen-type='method'><doc><text><p>Sets the compression method. Currently only <ref resolved='
7.8
::SSL.Constants.CompressionType.COMPRESSION_null'>COMPRESSION_null</ref> is
supported.</p> </text></doc> <method name='set_compression_method'> <arguments><argument name='compr'><type><int/></type></argument></arguments> <returntype><void/></returntype> </method> </docgroup> </class> <class name='sslfile'> <doc><text><p>Interface similar to <ref resolved='7.8::Stdio.File'>Stdio.File</ref>.</p>
autodoc.git/modref.xml:117327:
<docgroup homogen-name='' homogen-type='import'> <import name=''><classname resolved='predef::'>predef::</classname></import> </docgroup> <class name='Connection'> <doc><text><p>Base class for a connection to an SQL database.</p> </text></doc> <docgroup homogen-name='Connection' homogen-type='inherit'> <inherit name='Connection'><classname resolved='predef::__builtin.Sql.Connection'>__builtin.Sql.Connection</classname></inherit> </docgroup> </class>
+
<class name='FutureResult'>
+
<doc><text><p>Base class for the result from <ref resolved='predef::__builtin.Sql.Connection.promise_query'>Connection()->promise_query()</ref> et al.</p>
+
</text></doc>
+
<docgroup homogen-name='FutureResult' homogen-type='inherit'>
+
<inherit name='FutureResult'><classname>__builtin.Sql.FutureResult</classname></inherit>
+
</docgroup>
+
</class>
<class name='Null'> <doc><text><p>Class used to implement the SQL NULL value.</p> </text><group><deprecated><name><ref resolved='predef::Val.Null'>Val.Null</ref></name></deprecated></group><group><seealso/><text><p><ref resolved='predef::Val.Null'>Val.Null</ref>, <ref resolved='predef::Val.null'>Val.null</ref></p> </text></group></doc> </class> <class name='Result'> <doc><text><p>Base class for the result from <ref resolved='predef::__builtin.Sql.Connection.big_query'>Connection()->big_query()</ref> et al.</p> </text></doc> <docgroup homogen-name='Result' homogen-type='inherit'> <inherit name='Result'><classname resolved='predef::__builtin.Sql.Result'>__builtin.Sql.Result</classname></inherit>
autodoc.git/modref.xml:117860:
</text></group><group><item/><text><p>Automatic precompilation of complex queries (session cache).</p> </text></group><group><item/><text><p>Multiple simultaneous queries on the same database connection.</p> </text></group><group><item/><text><p>Cancelling of long running queries by force or by timeout.</p> </text></group><group><item/><text><p>Event driven NOTIFY.</p> </text></group><group><item/><text><p>SSL encrypted connections (optional or forced).</p> </text></group></ul><p>Check the PostgreSQL documentation for further details.</p> </text><group><note/><text><p>Multiple simultaneous queries on the same database connection are a feature that none of the other database drivers for Pike support. So, although it's efficient, its use will make switching database drivers difficult.</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.
Sql
'>Sql.
Sql
</ref>, <ref resolved='predef::Sql.postgres'>Sql.postgres</ref>,
+
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.
Connection
'>Sql.
Connection
</ref>, <ref resolved='predef::Sql.postgres'>Sql.postgres</ref>,
<url>https://www.postgresql.org/docs/current/static/</url></p> </text></group></doc> <docgroup homogen-name='big_query' homogen-type='method'><doc><text><p>This is the only provided direct interface which allows you to query the database. A simpler synchronous interface can be used through <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref>.</p> <p> Bindings are supported natively straight across the network. Special bindings supported are:</p> <mapping><group><member><type><int/></type><index>":_cache"</index></member><text><p>Forces caching on or off for the query at hand.</p> </text></group><group><member><type><int/></type><index>":_text"</index></member><text><p>Forces text mode in communication with the database for queries on or off for the query at hand. Potentially more efficient than the default binary method for simple queries with small or no result sets.
autodoc.git/modref.xml:117885:
be parsed before the previous statements have been executed (e.g. references to temporary tables created in the preceding statement), but it can speed up parsing due to increased parallelism.</p> </text></group></mapping> </text><group><note/><text><p>The bindings-parameter passed to this function must remain unaltered until the parameters have been sent to the database. The driver currently does not expose this moment, but to avoid a race condition it is sufficient to keep them unaltered until the first resultrow has been fetched (or EOF is reached, in case of no resultrows).</p>
-
</text></group><group><returns/><text><p>A <ref resolved='predef::Sql.pgsql_util.
sql_result
'>Sql.pgsql_util.
sql_result
</ref> object (which conforms to the
-
<ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> standard interface for accessing data). It is
+
</text></group><group><returns/><text><p>A <ref resolved='predef::Sql.pgsql_util.
Result
'>Sql.pgsql_util.
Result
</ref> object (which conforms to the
+
<ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> standard interface for accessing data). It is
recommended to use <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> for simpler queries (because it is easier to handle, but stores all the result in memory), and <ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref> for queries you expect to return huge amounts of data (it's harder to handle, but fetches results on demand).</p> </text></group><group><note/><text><p>This function <b>can</b> raise exceptions.</p> </text></group><group><note/><text><p>This function supports multiple simultaneous queries (portals) on a single database connection. This is a feature not commonly supported by other database backends.</p> </text></group><group><note/><text><p>This function, by default, does not support multiple queries in one querystring. I.e. it allows for but does not require a trailing semicolon, but it simply ignores any commands after the first unquoted semicolon. This can be viewed as a limited protection against SQL-injection attacks. To make it support multiple queries in one querystring, use the <ref resolved='predef::Sql.pgsql.big_query'>:_text</ref> option (not recommended).</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.big_typed_query'>big_typed_query()</ref>, <ref resolved='predef::Sql.
Sql
'>Sql.
Sql
</ref>, <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref>,
-
<ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref>, <ref resolved='predef::Sql.pgsql_util.
sql_result
'>Sql.pgsql_util.
sql_result
</ref></p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.big_typed_query'>big_typed_query()</ref>, <ref resolved='predef::Sql.
Connection
'>Sql.
Connection
</ref>, <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref>,
+
<ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref>, <ref resolved='predef::Sql.pgsql_util.
Result
'>Sql.pgsql_util.
Result
</ref></p>
</text></group></doc> <method name='big_query'><modifiers><final/></modifiers> <arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument><argument name='_alltyped'><type><or><void/><int/></or></type></argument></arguments>
-
<returntype><object resolved='predef::Sql.pgsql_util.
sql_result
'>.pgsql_util.
sql_result
</object></returntype>
+
<returntype><object resolved='predef::Sql.pgsql_util.
Result
'>.pgsql_util.
Result
</object></returntype>
</method> </docgroup> <docgroup homogen-name='big_typed_query' homogen-type='method'><doc><text><p>This function returns an object that allows streaming and typed results.</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref>, <ref resolved='predef::Sql.
Sql
'>Sql.
Sql
</ref>, <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref></p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref>, <ref resolved='predef::Sql.
Connection
'>Sql.
Connection
</ref>, <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref></p>
</text></group></doc> <method name='big_typed_query'><modifiers><final/></modifiers> <arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments>
-
<returntype><object resolved='predef::Sql.pgsql_util.
sql_result
'>.pgsql_util.
sql_result
</object></returntype>
+
<returntype><object resolved='predef::Sql.pgsql_util.
Result
'>.pgsql_util.
Result
</object></returntype>
</method> </docgroup> <docgroup homogen-name='cancelquery' homogen-type='method'><doc><text><p>Cancels all currently running queries in this session.</p> </text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.reload'>reload()</ref>, <ref resolved='predef::Sql.pgsql.resync'>resync()</ref></p> </text></group><group><note/><text><p>This function is PostgreSQL-specific.</p> </text></group></doc> <method name='cancelquery'><modifiers><final/></modifiers> <arguments/> <returntype><void/></returntype> </method>
autodoc.git/modref.xml:117990:
</text></group></mapping><p>For the numerous other options please check the PostgreSQL manual.</p> </text></group><group><note/><text><p>You need to have a database selected before using the SQL-object, otherwise you'll get exceptions when you try to query it. Also notice that this function <b>can</b> raise exceptions if the db server doesn't respond, if the database doesn't exist or is not accessible to you.</p> </text></group><group><note/><text><p>It is possible that the exception from a failed connect will not be triggered on this call (because the connect proceeds asynchronously in the background), but on the first attempt to actually use the database instead.</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Postgres.postgres'>Postgres.postgres</ref>, <ref resolved='predef::Sql.
Sql
'>Sql.
Sql
</ref>, <ref resolved='predef::Sql.pgsql.select_db'>select_db()</ref>,
+
</text></group><group><seealso/><text><p><ref resolved='predef::Postgres.postgres'>Postgres.postgres</ref>, <ref resolved='predef::Sql.
Connection
'>Sql.
Connection
</ref>, <ref resolved='predef::Sql.pgsql.select_db'>select_db()</ref>,
<url>https://www.postgresql.org/docs/current/static/runtime-config-client.html</url></p> </text></group></doc> <method name='create'><modifiers><protected/></modifiers> <arguments><argument name='host'><type><or><void/><string/></or></type></argument><argument name='database'><type><or><void/><string/></or></type></argument><argument name='user'><type><or><void/><string/></or></type></argument><argument name='pass'><type><or><void/><string/></or></type></argument><argument name='options'><type><or><void/><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments> <returntype><void/></returntype> </method> </docgroup> <docgroup homogen-name='create_db' homogen-type='method'><doc><text><p>This function creates a new database (assuming we have sufficient privileges to do this).</p> </text><group><param name='db'/><text><p>Name of the new database.</p>
autodoc.git/modref.xml:118341:
<string><group><value>idle</value><value>intransaction</value><value>infailedtransaction</value></group></string> </text></group><group><note/><text><p>This function is PostgreSQL-specific.</p> </text></group></doc> <method name='status_commit'><modifiers><final/></modifiers> <arguments/> <returntype><string/></returntype> </method> </docgroup> <docgroup homogen-name='streaming_query' homogen-type='method'><doc><text><p>This is an alias for <ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref>, since <ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref> already supports streaming of multiple simultaneous queries through the same connection.</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref>, <ref resolved='predef::Sql.pgsql.big_typed_query'>big_typed_query()</ref>, <ref resolved='predef::Sql.
Sql
'>Sql.
Sql
</ref>, <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref></p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql.big_query'>big_query()</ref>, <ref resolved='predef::Sql.pgsql.big_typed_query'>big_typed_query()</ref>, <ref resolved='predef::Sql.
Connection
'>Sql.
Connection
</ref>, <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref></p>
</text></group></doc> <method name='streaming_query'><modifiers><final/></modifiers> <arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments>
-
<returntype><object resolved='predef::Sql.pgsql_util.
sql_result
'>.pgsql_util.
sql_result
</object></returntype>
+
<returntype><object resolved='predef::Sql.pgsql_util.
Result
'>.pgsql_util.
Result
</object></returntype>
</method> </docgroup> </class> <module name='pgsql_util'> <doc><text><p>The pgsql backend, shared between all connection instances. It runs even in non-callback mode in a separate thread and makes sure that communication with the database is real-time and event driven at all times.</p> </text><group><note/><text><p>Callbacks running from this backend directly determine the latency in reacting to communication with the database server; so it
autodoc.git/modref.xml:118373:
<variable name='local_backend'><modifiers><final/></modifiers><type><object resolved='predef::Pike.Backend'>Pike.Backend</object></type></variable> </docgroup> <docgroup homogen-name='register_backend' homogen-type='method'><doc><text><p>Registers yourself as a user of this backend. If the backend has not been started yet, it will be spawned automatically.</p> </text></doc> <method name='register_backend'><modifiers><final/></modifiers> <arguments/> <returntype><object resolved='predef::Thread.ResourceCountKey'>Thread.ResourceCountKey</object></returntype> </method> </docgroup>
-
<class name='
sql_result
'>
+
<class name='
Result
'>
<doc><text><p>The result object returned by <ref resolved='predef::Sql.pgsql.big_query'>Sql.pgsql()->big_query()</ref>, except for
-
the noted differences it behaves the same as <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref>.</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref>, <ref resolved='predef::Sql.pgsql'>Sql.pgsql</ref>, <ref resolved='predef::Sql.Sql'>Sql.Sql</ref>, <ref resolved='predef::Sql.pgsql.big_query'>Sql.pgsql()->big_query()</ref></p>
+
the noted differences it behaves the same as <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref>.</p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref>, <ref resolved='predef::Sql.pgsql'>Sql.pgsql</ref>, <ref resolved='predef::Sql.Sql'>Sql.Sql</ref>, <ref resolved='predef::Sql.pgsql.big_query'>Sql.pgsql()->big_query()</ref></p>
</text></group></doc> <docgroup homogen-name='affected_rows' homogen-type='method'><doc><text><p>Returns the number of affected rows by this query.</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.status_command_complete'>status_command_complete()</ref></p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.status_command_complete'>status_command_complete()</ref></p>
</text></group></doc> <method name='affected_rows'><modifiers><final/></modifiers> <arguments/> <returntype><int/></returntype> </method> </docgroup>
-
<docgroup homogen-name='eof' homogen-type='method'><doc><group><seealso/><text><p><ref resolved='predef::Sql.
sql_result
.eof'>Sql.
sql_result
()->eof()</ref></p>
+
<docgroup homogen-name='eof' homogen-type='method'><doc><group><seealso/><text><p><ref resolved='predef::
__builtin.
Sql.
Result
.eof'>Sql.
Result
()->eof()</ref></p>
</text></group></doc> <method name='eof'><modifiers><final/></modifiers> <arguments/> <returntype><int/></returntype> </method> </docgroup>
-
<docgroup homogen-name='fetch_fields' homogen-type='method'><doc><group><seealso/><text><p><ref resolved='predef::Sql.
sql_result
.fetch_fields'>Sql.
sql_result
()->fetch_fields()</ref></p>
+
<docgroup homogen-name='fetch_fields' homogen-type='method'><doc><group><seealso/><text><p><ref resolved='predef::
__builtin.
Sql.
Result
.fetch_fields'>Sql.
Result
()->fetch_fields()</ref></p>
</text></group></doc> <method name='fetch_fields'><modifiers><final/></modifiers> <arguments/> <returntype><array><valuetype><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></valuetype></array></returntype> </method> </docgroup> <docgroup homogen-name='fetch_row' homogen-type='method'><doc><group><returns/><text><p>One result row at a time.</p> <p> When using COPY FROM STDOUT, this method returns one row at a time as a single string containing the entire row.</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.eof'>eof()</ref>, <ref resolved='predef::Sql.pgsql_util.
sql_result
.send_row'>send_row()</ref></p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.eof'>eof()</ref>, <ref resolved='predef::Sql.pgsql_util.
Result
.send_row'>send_row()</ref></p>
</text></group></doc> <method name='fetch_row'><modifiers><final/></modifiers> <arguments/> <returntype><array><valuetype><mixed/></valuetype></array></returntype> </method> </docgroup> <docgroup homogen-name='fetch_row_array' homogen-type='method'><doc><group><returns/><text><p>Multiple result rows at a time (at least one).</p> <p> When using COPY FROM STDOUT, this method returns one row at a time as a single string containing the entire row.</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.eof'>eof()</ref>, <ref resolved='predef::Sql.pgsql_util.
sql_result
.fetch_row'>fetch_row()</ref></p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.eof'>eof()</ref>, <ref resolved='predef::Sql.pgsql_util.
Result
.fetch_row'>fetch_row()</ref></p>
</text></group></doc> <method name='fetch_row_array'><modifiers><final/></modifiers> <arguments/> <returntype><array><valuetype><array><valuetype><mixed/></valuetype></array></valuetype></array></returntype> </method> </docgroup> <docgroup homogen-name='Result' homogen-type='inherit'> <inherit name='Result'><classname resolved='predef::__builtin.Sql.Result'>__builtin.Sql.Result</classname></inherit> </docgroup>
-
<docgroup homogen-name='num_fields' homogen-type='method'><doc><group><seealso/><text><p><ref resolved='predef::Sql.
sql_result
.num_fields'>Sql.
sql_result
()->num_fields()</ref></p>
+
<docgroup homogen-name='num_fields' homogen-type='method'><doc><group><seealso/><text><p><ref resolved='predef::
__builtin.
Sql.
Result
.num_fields'>Sql.
Result
()->num_fields()</ref></p>
</text></group></doc> <method name='num_fields'><modifiers><final/></modifiers> <arguments/> <returntype><int/></returntype> </method> </docgroup> <docgroup homogen-name='num_rows' homogen-type='method'><doc><group><note/><text><p>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.</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.
sql_result
.num_rows'>Sql.
sql_result
()->num_rows()</ref></p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::
__builtin.
Sql.
Result
.num_rows'>Sql.
Result
()->num_rows()</ref></p>
</text></group></doc> <method name='num_rows'><modifiers><final/></modifiers> <arguments/> <returntype><int/></returntype> </method> </docgroup> <docgroup homogen-name='send_row' homogen-type='method'><doc><group><param name='copydata'/><text><p>When using COPY FROM STDIN, this method accepts a string or an array of strings to be processed by the COPY command; when sending the amount of data sent per call does not have to hit row or column boundaries.</p> <p> The COPY FROM STDIN sequence needs to be completed by either explicitly or implicitly destroying the result object, or by passing no argument to this method.</p>
-
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.fetch_row'>fetch_row()</ref>, <ref resolved='predef::Sql.pgsql_util.
sql_result
.eof'>eof()</ref></p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.fetch_row'>fetch_row()</ref>, <ref resolved='predef::Sql.pgsql_util.
Result
.eof'>eof()</ref></p>
</text></group></doc> <method name='send_row'><modifiers><final/></modifiers> <arguments><argument name='copydata'><type><or><void/><string/><array><valuetype><string/></valuetype></array></or></type></argument></arguments> <returntype><void/></returntype> </method> </docgroup> <docgroup homogen-name='set_result_array_callback' homogen-type='method'><doc><text><p>Sets up a callback for sets of rows returned from the database. First argument passed is the resultobject itself, second argument is the array of result rows (zero on EOF).</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.fetch_row'>fetch_row()</ref></p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.fetch_row'>fetch_row()</ref></p>
</text></group></doc> <method name='set_result_array_callback'><modifiers><final/></modifiers>
-
<arguments><argument name='callback'><type><function><argtype><object resolved='predef::Sql.pgsql_util.
sql_result
'>
sql_result
</object></argtype><argtype><array><valuetype><array><valuetype><mixed/></valuetype></array></valuetype></array></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><void/></returntype></function></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>
+
<arguments><argument name='callback'><type><function><argtype><object resolved='predef::Sql.pgsql_util.
Result
'>
Result
</object></argtype><argtype><array><valuetype><array><valuetype><mixed/></valuetype></array></valuetype></array></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><void/></returntype></function></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>
<returntype><void/></returntype> </method> </docgroup> <docgroup homogen-name='set_result_callback' homogen-type='method'><doc><text><p>Sets up a callback for every row returned from the database. First argument passed is the resultobject itself, second argument is the result row (zero on EOF).</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.fetch_row'>fetch_row()</ref></p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.fetch_row'>fetch_row()</ref></p>
</text></group></doc> <method name='set_result_callback'><modifiers><final/></modifiers>
-
<arguments><argument name='callback'><type><function><argtype><object resolved='predef::Sql.pgsql_util.
sql_result
'>
sql_result
</object></argtype><argtype><array><valuetype><mixed/></valuetype></array></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><void/></returntype></function></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>
+
<arguments><argument name='callback'><type><function><argtype><object resolved='predef::Sql.pgsql_util.
Result
'>
Result
</object></argtype><argtype><array><valuetype><mixed/></valuetype></array></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><void/></returntype></function></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>
<returntype><void/></returntype> </method> </docgroup> <docgroup homogen-name='status_command_complete' homogen-type='method'><doc><text><p>Returns the command-complete status for this query.</p>
-
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
sql_result
.affected_rows'>affected_rows()</ref></p>
+
</text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql_util.
Result
.affected_rows'>affected_rows()</ref></p>
</text></group></doc> <method name='status_command_complete'><modifiers><final/></modifiers> <arguments/> <returntype><string/></returntype> </method> </docgroup> </class>
-
+
<class name='sql_result'>
+
<doc><group><deprecated><name><ref resolved='predef::Sql.pgsql_util.Result'>Result</ref></name></deprecated></group></doc>
+
</class>
</module> <class name='pgsqls'> <doc><text><p>Implements SQL-urls for <tt>pgsqls://[user[:password]@][hostname][:port][/database]</tt></p> <p> Sets the connection to SSL-mode, otherwise identical to <ref resolved='predef::Sql.pgsql'>Sql.pgsql</ref>.</p> </text><group><seealso/><text><p><ref resolved='predef::Sql.pgsql'>Sql.pgsql</ref>, <ref resolved='predef::Sql.Sql'>Sql.Sql</ref></p> </text></group></doc> <docgroup homogen-name='' homogen-type='import'> <import name=''><classname resolved='predef::'>predef::</classname></import> </docgroup>
autodoc.git/modref.xml:140973:
operate differently from what is described here, e.g. some that return a bit of typed data in untyped mode.</p> </text></group><group><note/><text><p>Typed operation was not supported at all prior to Pike 7.8.363, and may not be supported for all databases.</p> </text></group><group><seealso/><text><p><ref resolved='predef::Sql.Connection'>Sql.Connection</ref>, <ref resolved='predef::Sql.Sql'>Sql.Sql()</ref>, <ref resolved='predef::__builtin.Sql.Result'>Result</ref></p> </text></group></doc> <docgroup homogen-name='big_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results in untyped mode.</p> </text><group><param name='q'/><text><p>Query to send to the SQL-server. This can either be a string with the query, or a previously compiled query (see <ref resolved='predef::__builtin.Sql.Connection.compile_query'>compile_query()</ref>).</p>
-
</text></group><group><returns/><text><p>The result is returned as an <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in untyped
+
</text></group><group><returns/><text><p>The result is returned as an <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in untyped
mode. This allows for having some more info about the result as well as processing the result in a streaming fashion, although the result itself wasn't obtained streamingly from the server.</p> <p> Returns <expr>0</expr> if the query didn't return any result (e.g. <tt>INSERT</tt> or similar).</p> </text></group><group><throws/><text><p>Throws an exception if the query fails.</p> <p> Called by other variants of <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> after they have processed their extra arguments.</p> <p> This prototype function is the base variant and is intended to be overloaded by actual drivers.</p>
autodoc.git/modref.xml:141006:
</text><group><param name='q'/><text><p>Query to send to the SQL-server. This can either be a string with the query, or a previously compiled query (see <ref resolved='predef::__builtin.Sql.Connection.compile_query'>compile_query()</ref>).</p> </text></group><group><param name='bindings'/><text><p>A mapping containing bindings of variables used in the query. A variable is identified by a colon (:) followed by a name or number. Each index in the mapping corresponds to one such variable, and the value for that index is substituted (quoted) into the query wherever the variable is used.</p> <code><text><p>res = query("SELECT foo FROM bar WHERE gazonk=:baz", ([":baz":"value"]));</p> </text></code><p>Binary values (BLOBs) may need to be placed in multisets.</p>
-
</text></group><group><returns/><text><p>The result is returned as an <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in untyped
+
</text></group><group><returns/><text><p>The result is returned as an <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in untyped
mode. This allows for having some more info about the result as well as processing the result in a streaming fashion, although the result itself wasn't obtained streamingly from the server.</p> <p> Returns <expr>0</expr> if the query didn't return any result (e.g. <tt>INSERT</tt> or similar).</p> </text></group><group><throws/><text><p>Throws an exception if the query fails.</p> <p> Calls the base variant of <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> after having inserted the bindings into the query (using <ref resolved='predef::__builtin.Sql.Connection.emulate_bindings'>emulate_bindings()</ref>).</p> <p> Drivers that actually support bindings should overload this variant in addition to the base variant.</p>
autodoc.git/modref.xml:141034:
<returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='big_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results in untyped mode.</p> </text><group><param name='q'/><text><p>Query to send to the SQL-server. This can either be a string with the query, or a previously compiled query (see <ref resolved='predef::__builtin.Sql.Connection.compile_query'>compile_query()</ref>).</p> </text></group><group><param name='extraarg'/><param name='extraargs'/><text><p>Arguments as you would use in sprintf. They are automatically quoted.</p> <code><text><p>res = query("select foo from bar where gazonk=%s","value");</p>
-
</text></code><p>The result is returned as an <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in untyped
+
</text></code><p>The result is returned as an <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in untyped
mode. This allows for having some more info about the result as well as processing the result in a streaming fashion, although the result itself wasn't obtained streamingly from the server. Returns <expr>0</expr> if the query didn't return any result (e.g. <tt>INSERT</tt> or similar).</p> <p> The default implementation normalizes <ref resolved='predef::__builtin.Sql.Connection.big_query.q'>q</ref> and <ref resolved='predef::__builtin.Sql.Connection.big_query.extraargs'>extraargs</ref> to use the bindings mapping (via <ref resolved='predef::__builtin.Sql.Connection.handle_extraargs'>handle_extraargs()</ref>), and calls one of the other variants of <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> with the result.</p> </text></group><group><note/><text><p>Despite the name, this function is not only useful for "big" queries. It typically has less overhead than <ref resolved='predef::__builtin.Sql.Connection.query'>query</ref> also for
autodoc.git/modref.xml:141056:
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.query'>query</ref>, <ref resolved='predef::__builtin.Sql.Connection.handle_extraargs'>handle_extraargs</ref>, <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query</ref></p> </text></group></doc> <method name='big_query'><modifiers><variant/></modifiers> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.big_query'/><string/></or></type></argument><argument name='extraarg'><type><or><string/><multiset/><int/><float/><object resolved='predef::__builtin.Sql.Connection.big_query'/></or></type></argument><argument name='extraargs'><type><varargs><or><string/><multiset/><int/><float/><object resolved='predef::__builtin.Sql.Connection.big_query'/></or></varargs></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='big_typed_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results in typed mode.</p> <p> For the argument, please see the <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> function.</p>
-
<p> The result is returned as an <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in typed
+
<p> The result is returned as an <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in typed
mode. This allows for having some more info about the result as well as processing the result in a streaming fashion, although the result itself wasn't obtained streamingly from the server. Returns <expr>0</expr> if the query didn't return any result (e.g. <tt>INSERT</tt> or similar).</p> </text><group><note/><text><p>Typed mode is not supported by all sql databases. If not supported, an error is thrown.</p> </text></group><group><note/><text><p>Despite the name, this function is not only useful for "big" queries. It typically has less overhead than <ref resolved='predef::__builtin.Sql.Connection.typed_query'>typed_query</ref> also for ones that return only a few rows.</p>
autodoc.git/modref.xml:141079:
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.query'>query</ref>, <ref resolved='predef::__builtin.Sql.Connection.typed_query'>typed_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query</ref></p> </text></group></doc> <method name='big_typed_query'> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.big_typed_query'/><string/></or></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='big_typed_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results in typed mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> function.</p>
-
<p> The result is returned as an <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in typed
+
<p> The result is returned as an <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in typed
mode. This allows for having some more info about the result as well as processing the result in a streaming fashion, although the result itself wasn't obtained streamingly from the server. Returns <expr>0</expr> if the query didn't return any result (e.g. <tt>INSERT</tt> or similar).</p> </text><group><note/><text><p>Typed mode is not supported by all sql databases. If not supported, an error is thrown.</p> </text></group><group><note/><text><p>Despite the name, this function is not only useful for "big" queries. It typically has less overhead than <ref resolved='predef::__builtin.Sql.Connection.typed_query'>typed_query</ref> also for ones that return only a few rows.</p>
autodoc.git/modref.xml:141101:
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.query'>query</ref>, <ref resolved='predef::__builtin.Sql.Connection.typed_query'>typed_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query</ref></p> </text></group></doc> <method name='big_typed_query'><modifiers><variant/></modifiers> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.big_typed_query'/><string/></or></type></argument><argument name='bindings'><type><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='big_typed_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results in typed mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> function.</p>
-
<p> The result is returned as an <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in typed
+
<p> The result is returned as an <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in typed
mode. This allows for having some more info about the result as well as processing the result in a streaming fashion, although the result itself wasn't obtained streamingly from the server. Returns <expr>0</expr> if the query didn't return any result (e.g. <tt>INSERT</tt> or similar).</p> </text><group><note/><text><p>Typed mode is not supported by all sql databases. If not supported, an error is thrown.</p> </text></group><group><note/><text><p>Despite the name, this function is not only useful for "big" queries. It typically has less overhead than <ref resolved='predef::__builtin.Sql.Connection.typed_query'>typed_query</ref> also for ones that return only a few rows.</p>
autodoc.git/modref.xml:141438:
</text></group><group><value>-1</value><text><p>The server has gone away, and the connection is dead.</p> </text></group></int><p>The default implementation performs a trivial select to check the connection.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.is_open'>is_open()</ref></p> </text></group></doc> <method name='ping'> <arguments/> <returntype><int/></returntype> </method> </docgroup>
+
<docgroup homogen-name='promise_query' homogen-type='method'><doc><text><p>Sends a query to the database asynchronously.</p>
+
</text><group><returns/><text><p>A <ref resolved='predef::Concurrent.Future'>Concurrent.Future</ref> object which on failure/success passes
+
a <ref resolved='predef::Sql.FutureResult'>Sql.FutureResult</ref> object to evaluate the query.</p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.promise_query_first_result'>promise_query_first_result()</ref>, <ref resolved='predef::__builtin.Sql.Connection.promise_query_result'>promise_query_result()</ref>,
+
<ref resolved='predef::__builtin.Sql.Connection.promise_query_discard'>promise_query_discard()</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query()</ref></p>
+
</text></group><group><example/><text><code><text><p>Sql.Connection db = Sql.Connection("...");
+
Concurrent.Future q1 = db->promise_query("SELECT :bar::INT", (["bar":1]));
+
Concurrent.Future q2 = db->promise_query("SELECT :foo::INT", (["foo":2]));</p>
+
<p> array(Concurrent.Future) all = ({ q1, q2 });</p>
+
<p> /*
+
To get a callback for each of the requests
+
*/</p>
+
<p> all->on_success(lambda (Sql.FutureResult resp) {
+
werror("Got result %O from %O\n", resp->data, resp->query);
+
});
+
all->on_failure(lambda (Sql.FutureResult resp) {
+
werror("Request %O failed: %O\n", resp->query, resp->exception);
+
});</p>
+
<p> /*
+
To get a callback when all of the requests are done. In this case
+
on_failure will be called if any of the request fails.
+
*/</p>
+
<p> Concurrent.Future all2 = Concurrent.results(all);</p>
+
<p> all2->on_success(lambda (array(Sql.FutureResult) resp) {
+
werror("All requests were successful: %O\n", resp);
+
});
+
all->on_failure(lambda (Sql.FutureResult resp) {
+
werror("Requests %O failed with %O.\n", resp->query, resp->exception);
+
});</p>
+
</text></code>
+
</text></group></doc>
+
<method name='promise_query'><modifiers><public/></modifiers>
+
<arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments>
+
<returntype><object resolved='predef::Concurrent.Future'>Concurrent.Future</object></returntype>
+
</method>
+
</docgroup>
+
<docgroup homogen-name='promise_query_discard' homogen-type='method'><doc><text><p>Sends a query to the database asynchronously, discards all query result
+
records.</p>
+
</text><group><returns/><text><p>A <ref resolved='predef::Concurrent.Future'>Concurrent.Future</ref> object which on failure/success passes
+
a <ref resolved='predef::Sql.FutureResult'>Sql.FutureResult</ref> object to evaluate the query.</p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.promise_query'>promise_query()</ref>, <ref resolved='predef::__builtin.Sql.Connection.promise_query_first_result'>promise_query_first_result()</ref>,
+
<ref resolved='predef::__builtin.Sql.Connection.promise_query_result'>promise_query_result()</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query()</ref></p>
+
</text></group></doc>
+
<method name='promise_query_discard'><modifiers><public/></modifiers>
+
<arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments>
+
<returntype><object resolved='predef::Concurrent.Future'>Concurrent.Future</object></returntype>
+
</method>
+
</docgroup>
+
<docgroup homogen-name='promise_query_first_result' homogen-type='method'><doc><text><p>Sends a query to the database asynchronously, expects at least
+
a single record from the database; will discard any further
+
records.</p>
+
</text><group><returns/><text><p>A <ref resolved='predef::Concurrent.Future'>Concurrent.Future</ref> object which on failure/success passes
+
a <ref resolved='predef::Sql.FutureResult'>Sql.FutureResult</ref> object to evaluate the query.</p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.promise_query'>promise_query()</ref>, <ref resolved='predef::__builtin.Sql.Connection.promise_query_result'>promise_query_result()</ref>,
+
<ref resolved='predef::__builtin.Sql.Connection.promise_query_discard'>promise_query_discard()</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query()</ref></p>
+
</text></group></doc>
+
<method name='promise_query_first_result'><modifiers><public/></modifiers>
+
<arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments>
+
<returntype><object resolved='predef::Concurrent.Future'>Concurrent.Future</object></returntype>
+
</method>
+
</docgroup>
+
<docgroup homogen-name='promise_query_result' homogen-type='method'><doc><text><p>Sends a query to the database asynchronously, expects at least
+
a single record from the database.</p>
+
</text><group><returns/><text><p>A <ref resolved='predef::Concurrent.Future'>Concurrent.Future</ref> object which on failure/success passes
+
a <ref resolved='predef::Sql.FutureResult'>Sql.FutureResult</ref> object to evaluate the query.</p>
+
</text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.promise_query'>promise_query()</ref>, <ref resolved='predef::__builtin.Sql.Connection.promise_query_first_result'>promise_query_first_result()</ref>,
+
<ref resolved='predef::__builtin.Sql.Connection.promise_query_discard'>promise_query_discard()</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query()</ref></p>
+
</text></group></doc>
+
<method name='promise_query_result'><modifiers><public/></modifiers>
+
<arguments><argument name='q'><type><string/></type></argument><argument name='bindings'><type><or><void/><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></or></type></argument></arguments>
+
<returntype><object resolved='predef::Concurrent.Future'>Concurrent.Future</object></returntype>
+
</method>
+
</docgroup>
<docgroup homogen-name='query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results in untyped mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref> function.</p> </text><group><returns/><text><p>Returns one of the following on success:</p> <mixed><group><type><array><valuetype><mapping><indextype><string/></indextype><valuetype><string/></valuetype></mapping></valuetype></array></type><text><p>The result as an array of mappings indexed on the name of the columns. The values are either strings with the display representations or zero for the SQL NULL value.</p> </text></group><group><type><zero/></type><text><p>The value <expr>0</expr> (zero) if the query didn't return any result (eg <tt>INSERT</tt> or similar).</p> </text></group></mixed>
autodoc.git/modref.xml:141538:
<p> The SQLSTATE error codes are specified in ANSI SQL.</p> </text></doc> <method name='sqlstate'> <arguments/> <returntype><string/></returntype> </method> </docgroup> <docgroup homogen-name='streaming_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results streaming in untyped mode.</p> <p> For the arguments, please see the <ref>low_big_query()</ref> function.</p>
-
<p> The result is returned as a streaming <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in
+
<p> The result is returned as a streaming <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in
untyped mode. This allows for having results larger than the available memory, and returning some more info about the result. Returns <expr>0</expr> if the query didn't return any result (e.g. INSERT or similar). For the other arguments, they are the same as for the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p> <p> Called by <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query()</ref> after it has processed any bindings.</p> <p> This variant function is intended for overriding by drivers.</p> </text><group><note/><text><p>Streaming operation is not supported by all sql databases. The default implementation falls back to calling <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref>.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.streaming_typed_query'>streaming_typed_query</ref></p> </text></group></doc> <method name='streaming_query'> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.streaming_query'/><string/></or></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='streaming_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results streaming in untyped mode.</p> <p> For the arguments, please see the <ref>low_big_query()</ref> function.</p>
-
<p> The result is returned as a streaming <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in
+
<p> The result is returned as a streaming <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in
untyped mode. This allows for having results larger than the available memory, and returning some more info about the result. Returns <expr>0</expr> if the query didn't return any result (e.g. INSERT or similar). For the other arguments, they are the same as for the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p> <p> Called by <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query()</ref> after it has processed any bindings.</p> <p> This variant function is intended for overriding by drivers that actually implement bindings.</p> </text><group><note/><text><p>Streaming operation is not supported by all sql databases. The default implementation falls back to calling <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref>.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.streaming_typed_query'>streaming_typed_query</ref></p> </text></group></doc> <method name='streaming_query'><modifiers><variant/></modifiers> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.streaming_query'/><string/></or></type></argument><argument name='bindings'><type><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='streaming_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results streaming in untyped mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p>
-
<p> The result is returned as a streaming <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in
+
<p> The result is returned as a streaming <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in
untyped mode. This allows for having results larger than the available memory, and returning some more info about the result. Returns <expr>0</expr> if the query didn't return any result (e.g. INSERT or similar). For the other arguments, they are the same as for the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p> </text><group><note/><text><p>Streaming operation is not supported by all sql databases. If not supported, this function will fall back to calling <ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query()</ref>.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.big_query'>big_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.streaming_typed_query'>streaming_typed_query</ref></p> </text></group></doc> <method name='streaming_query'><modifiers><variant/></modifiers> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.streaming_query'/><string/></or></type></argument><argument name='extraarg'><type><or><string/><multiset/><int/><float/><object resolved='predef::__builtin.Sql.Connection.streaming_query'/></or></type></argument><argument name='extraargs'><type><varargs><or><string/><multiset/><int/><float/><object resolved='predef::__builtin.Sql.Connection.streaming_query'/></or></varargs></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='streaming_typed_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results streaming in typed mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p>
-
<p> The result is returned as a streaming <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in
+
<p> The result is returned as a streaming <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in
typed mode. This allows for having results larger than the available memory, and returning some more info about the result. Returns <expr>0</expr> if the query didn't return any result (e.g. INSERT or similar).</p> <p> Called by <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query()</ref> after it has processed any bindings.</p> <p> This function is intended for overriding by drivers.</p> </text><group><note/><text><p>Neither streaming operation nor typed results are supported by all sql databases. The default implentation falls back to calling <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query()</ref>.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query</ref></p> </text></group></doc> <method name='streaming_typed_query'> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.streaming_typed_query'/><string/></or></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='streaming_typed_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results streaming in typed mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p>
-
<p> The result is returned as a streaming <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in
+
<p> The result is returned as a streaming <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in
typed mode. This allows for having results larger than the available memory, and returning some more info about the result. Returns <expr>0</expr> if the query didn't return any result (e.g. INSERT or similar).</p> <p> Called by <ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query()</ref> after it has processed any bindings.</p> <p> This function is intended for overriding by drivers.</p> </text><group><note/><text><p>Neither streaming operation nor typed results are supported by all sql databases. The default implentation falls back to calling <ref>low_big_typed_query()</ref>.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query</ref></p> </text></group></doc> <method name='streaming_typed_query'><modifiers><variant/></modifiers> <arguments><argument name='q'><type><or><object resolved='predef::__builtin.Sql.Connection.streaming_typed_query'/><string/></or></type></argument><argument name='bindings'><type><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping></type></argument></arguments> <returntype><or><int/><object resolved='predef::__builtin.Sql.Result'>.Result</object></or></returntype> </method> </docgroup> <docgroup homogen-name='streaming_typed_query' homogen-type='method'><doc><text><p>Send an SQL query synchronously to the SQL-server and return the results streaming in typed mode.</p> <p> For the arguments, please see the <ref resolved='predef::__builtin.Sql.Connection.query'>query()</ref> function.</p>
-
<p> The result is returned as a streaming <ref resolved='predef::Sql.
sql_result
'>Sql.
sql_result
</ref> object in
+
<p> The result is returned as a streaming <ref resolved='predef::Sql.
Result
'>Sql.
Result
</ref> object in
typed mode. This allows for having results larger than the available memory, and returning some more info about the result. Returns <expr>0</expr> if the query didn't return any result (e.g. INSERT or similar).</p> </text><group><note/><text><p>Neither streaming operation nor typed results are supported by all sql databases. If not supported, this function will fall back to calling <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query()</ref>.</p> </text></group><group><seealso/><text><p><ref resolved='predef::__builtin.Sql.Connection.streaming_query'>streaming_query</ref>, <ref resolved='predef::__builtin.Sql.Connection.big_typed_query'>big_typed_query</ref></p> </text></group></doc> <method name='streaming_typed_query'><modifiers><variant/></modifiers>