Module: sip-router
Branch: master
Commit: a4daa0d11e758dc7e72673a2e670338d19591ee8
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a4daa0d…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Sun Mar 13 22:19:12 2011 +0100
sqlops: adding missing ending tags to docbook
- replaced list of routing blocks with ANY_ROUTE
---
modules_k/sqlops/README | 71 +++++++++++++++++++++++++++------
modules_k/sqlops/doc/sqlops_admin.xml | 17 ++++----
2 files changed, 67 insertions(+), 21 deletions(-)
diff --git a/modules_k/sqlops/README b/modules_k/sqlops/README
index 902f709..5656715 100644
--- a/modules_k/sqlops/README
+++ b/modules_k/sqlops/README
@@ -32,7 +32,8 @@ Daniel-Constantin Mierla
4. Exported Functions
4.1. sql_query(connection, query, result)
- 4.2. sql_result_free(result)
+ 4.2. sql_xquery(connection, query, result)
+ 4.3. sql_result_free(result)
5. Exported pseudo-variables
@@ -43,8 +44,9 @@ Daniel-Constantin Mierla
1.1. Set sqlcon parameter
1.2. Set sqlres parameter
1.3. sql_query() usage
- 1.4. sql_result_free() usage
- 1.5. $dbr(result=>key) usage
+ 1.4. sql_xquery() usage
+ 1.5. sql_result_free() usage
+ 1.6. $dbr(result=>key) usage
Chapter 1. Admin Guide
@@ -64,7 +66,8 @@ Chapter 1. Admin Guide
4. Exported Functions
4.1. sql_query(connection, query, result)
- 4.2. sql_result_free(result)
+ 4.2. sql_xquery(connection, query, result)
+ 4.3. sql_result_free(result)
5. Exported pseudo-variables
@@ -91,6 +94,10 @@ Chapter 1. Admin Guide
[row,column].
* persistence in process space - a result can be used many times in
the same worker process. Query once, use many times.
+ * alternatively, results can be stored in xavps - columns are
+ accessed by their names, rows by xavp index. Xavp's are available
+ during the transactions lifetime and don't need to be destroyed
+ manually.
2. Dependencies
@@ -153,7 +160,8 @@ modparam("sqlops", "sqlres", "ra")
4. Exported Functions
4.1. sql_query(connection, query, result)
- 4.2. sql_result_free(result)
+ 4.2. sql_xquery(connection, query, result)
+ 4.3. sql_result_free(result)
4.1. sql_query(connection, query, result)
@@ -164,8 +172,7 @@ modparam("sqlops", "sqlres", "ra")
* result - string name to identify the result. Will be used by
$dbr(...) pseudo-variable to access result attributes.
- This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
- ONREPLY_ROUTE, BRANCH_ROUTE.
+ This function can be used from ANY_ROUTE.
Example 1.3. sql_query() usage
...
@@ -176,14 +183,32 @@ xlog("number of rows in table domain:
$dbr(ra=>rows)\n");
sql_result_free("ra");
...
-4.2. sql_result_free(result)
+4.2. sql_xquery(connection, query, result)
+
+ Make a SQL query using 'connection' and store data in 'result' xavp.
+ * connection - the name of the connection to be used for query
+ (defined via the “sqlcon” parameter).
+ * query - SQL query string or pseudo-variables containing SQL query.
+ * result - string name to identify the result xavp. Each row will be
+ added to this xavp, each column can be accessed by its name.
+
+ This function can be used from ANY_ROUTE.
+
+ Example 1.4. sql_xquery() usage
+...
+modparam("sqlops","sqlcon","ca=>dbdriver://username:password@dbhost/dbname")
+...
+sql_xquery("ca", "select * from domain", "ra");
+ xlog("first domain: $xavp(ra=>domain) with id:
$xavp(ra=>domain_id)\n");
+...
+
+4.3. sql_result_free(result)
Free data in SQL 'result'.
- This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
- ONREPLY_ROUTE, BRANCH_ROUTE.
+ This function can be used from ANY_ROUTE.
- Example 1.4. sql_result_free() usage
+ Example 1.5. sql_result_free() usage
...
modparam("sqlops","sqlcon","ca=>dbdriver://username:password@dbhost/dbname")
...
@@ -212,7 +237,7 @@ sql_result_free("ra");
integer.
* colname[N] - return the name of the N-th column in the result set.
- Example 1.5. $dbr(result=>key) usage
+ Example 1.6. $dbr(result=>key) usage
...
modparam("sqlops","sqlcon","ca=>dbdriver://username:password@dbhost/dbname")
...
@@ -240,3 +265,25 @@ if($dbr(ra=>rows)>0)
}
sql_result_free("ra");
...
+
+
+...
+if (sql_xquery("ca", "select * from domain", "ra") == 1)
+{
+# non-destructive iteration
+ $var(i) = 0;
+ while($xavp(ra[$var(i)]) != $null)
+ {
+ xlog("[id, domain] = [$xavp(ra[$var(i)]=>id),
$xavp(ra[$var(i)]=>domain)
+]\n");
+ $var(i) = $var(i) + 1;
+ }
+
+# destructive iteration
+ while($xavp(ra) != $null)
+ {
+ xlog("[id, domain] = [$xavp(ra=>id), $xavp(ra=>domain)]\n");
+ pv_unset("$xavp(ra)");
+ }
+}
+...
diff --git a/modules_k/sqlops/doc/sqlops_admin.xml
b/modules_k/sqlops/doc/sqlops_admin.xml
index 57ac3ab..d042c61 100644
--- a/modules_k/sqlops/doc/sqlops_admin.xml
+++ b/modules_k/sqlops/doc/sqlops_admin.xml
@@ -62,9 +62,10 @@
</listitem>
<listitem>
<para>
- <emphasis>alternatively, results can be stored in xavps. Columns are
- accessed by their names, rows by xavp index. Xavp's are available
- during the transactions lifetime and don't need to be destroyed manually.
+ <emphasis>alternatively, results can be stored in xavps</emphasis>
+ - columns are accessed by their names, rows by xavp index. Xavp's
+ are available during the transactions lifetime and don't need to
+ be destroyed manually.
</para>
</listitem>
@@ -204,8 +205,7 @@ modparam("sqlops", "sqlres", "ra")
</listitem>
</itemizedlist>
<para>
- This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
- ONREPLY_ROUTE, BRANCH_ROUTE.
+ This function can be used from ANY_ROUTE.
</para>
<example>
<title><function>sql_query()</function> usage</title>
@@ -220,6 +220,7 @@ sql_result_free("ra");
</programlisting>
</example>
</section>
+ <section>
<title>
<function moreinfo="none">sql_xquery(connection, query,
result)</function>
</title>
@@ -247,8 +248,7 @@ sql_result_free("ra");
</listitem>
</itemizedlist>
<para>
- This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
- ONREPLY_ROUTE, BRANCH_ROUTE.
+ This function can be used from ANY_ROUTE.
</para>
<example>
<title><function>sql_xquery()</function> usage</title>
@@ -270,8 +270,7 @@ sql_xquery("ca", "select * from domain",
"ra");
Free data in SQL 'result'.
</para>
<para>
- This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
- ONREPLY_ROUTE, BRANCH_ROUTE.
+ This function can be used from ANY_ROUTE.
</para>
<example>
<title><function>sql_result_free()</function> usage</title>