Skip to content
Browse files

Updated documentation

* Added GEO functions reference
* Added BAG_ funtion reference
* Added VECTOR_ funtion reference
* Added information on vectored execution
* Updated performance measuring/tuning chapter
* Updated tips and tricks chapter
* Fixed xml escapes
* Fixed typos
  • Loading branch information...
1 parent 4298150 commit 02d1a8202043feb48a9a81dae665c332e2a49c3d VOS Maintainer committed
Showing with 8,634 additions and 1,488 deletions.
  1. +2 −2 docsrc/xmlsource/adminui.querytools.xml
  2. +84 −0 docsrc/xmlsource/funcref/BAG_AGG.xml
  3. +92 −0 docsrc/xmlsource/funcref/BAG_CONCAT_AGG.xml
  4. +86 −0 docsrc/xmlsource/funcref/BAG_OF_NONNULLS_AGG.xml
  5. +82 −0 docsrc/xmlsource/funcref/BAG_OF_NONNULLS_OR_NULL_AGG.xml
  6. +83 −0 docsrc/xmlsource/funcref/BAG_OR_NULL_AGG.xml
  7. +10 −8 docsrc/xmlsource/funcref/GROUP_CONCAT.xml
  8. +101 −0 docsrc/xmlsource/funcref/GROUP_CONCAT_DISTINCT.xml
  9. +9 −7 docsrc/xmlsource/funcref/GROUP_DIGEST.xml
  10. +9 −7 docsrc/xmlsource/funcref/SAMPLE.xml
  11. +91 −0 docsrc/xmlsource/funcref/VECTOR_AGG.xml
  12. +92 −0 docsrc/xmlsource/funcref/VECTOR_CONCAT_AGG.xml
  13. +90 −0 docsrc/xmlsource/funcref/VECTOR_OF_NONNULLS_AGG.xml
  14. +92 −0 docsrc/xmlsource/funcref/VECTOR_OF_NONNULLS_OR_NULL_AGG.xml
  15. +93 −0 docsrc/xmlsource/funcref/VECTOR_OR_NULL_AGG.xml
  16. +1 −1 docsrc/xmlsource/funcref/XMLAGG.xml
  17. +92 −0 docsrc/xmlsource/funcref/XQ_SEQUENCE_AGG.xml
  18. +1 −1 docsrc/xmlsource/funcref/exec.xml
  19. +111 −0 docsrc/xmlsource/funcref/isgeometry.xml
  20. +95 −0 docsrc/xmlsource/funcref/rdf_geo_add.xml
  21. +102 −0 docsrc/xmlsource/funcref/rdf_geo_fill.xml
  22. +4 −0 docsrc/xmlsource/funcref/rdf_load_rdfxml_mt.xml
  23. +2 −2 docsrc/xmlsource/funcref/rdfs_rule_set.xml
  24. +102 −0 docsrc/xmlsource/funcref/st_astext.xml
  25. +130 −0 docsrc/xmlsource/funcref/st_contains.xml
  26. +93 −0 docsrc/xmlsource/funcref/st_distance.xml
  27. +87 −0 docsrc/xmlsource/funcref/st_geomfromtext.xml
  28. +126 −0 docsrc/xmlsource/funcref/st_intersects.xml
  29. +129 −0 docsrc/xmlsource/funcref/st_point.xml
  30. +92 −0 docsrc/xmlsource/funcref/st_setsrid.xml
  31. +108 −0 docsrc/xmlsource/funcref/st_srid.xml
  32. +117 −0 docsrc/xmlsource/funcref/st_within.xml
  33. +110 −0 docsrc/xmlsource/funcref/st_x.xml
  34. +109 −0 docsrc/xmlsource/funcref/st_y.xml
  35. +85 −0 docsrc/xmlsource/funcref/ttlp_mt.xml
  36. +66 −0 docsrc/xmlsource/funcref/uptime.xml
  37. +2 −0 docsrc/xmlsource/funcref/xenc_encrypt.xml
  38. +13 −5 docsrc/xmlsource/functions.xml
  39. +310 −0 docsrc/xmlsource/overview.xml
  40. +626 −2 docsrc/xmlsource/ptune.xml
  41. +4,065 −1,446 docsrc/xmlsource/rdfandsparql.xml
  42. +1 −1 docsrc/xmlsource/rth.aspx.xml
  43. +119 −1 docsrc/xmlsource/server.xml
  44. +296 −1 docsrc/xmlsource/sqlprocedures.xml
  45. +382 −1 docsrc/xmlsource/sqlreference.xml
  46. +41 −2 docsrc/xmlsource/virtdocs.xml
  47. +1 −1 docsrc/xmlsource/xa.xml
View
4 docsrc/xmlsource/adminui.querytools.xml
@@ -64,7 +64,7 @@ XQuery searches a "forest". The result is an XML document.
</para>
<para>
In order to create an XQuery you must both create the query statement
-&ndash; by typing or pasting it into the text box &ndash; and specify
+&mdash; by typing or pasting it into the text box &mdash; and specify
the document context. Since Virtuoso's XQuery implementation operates
over XML data in relational tables, this means the tables and columns
that are to be searched.
@@ -73,7 +73,7 @@ that are to be searched.
Note that the XQuery language also allows a query to specify all or
part of the document context for the query. In the example below we
will see how these can interact. The user interface form permits you to
-select a table &ndash; either one of the XQuery test data tables that come
+select a table &mdash; either one of the XQuery test data tables that come
with Virtuoso, or the WS.WS.SYS_DAV_RES table, which stores Virtuoso's WebDAV
Repository content.
</para>
View
84 docsrc/xmlsource/funcref/BAG_AGG.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_BAG_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.BAG_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.BAG_AGG</refname>
+ <refpurpose>Returns a vector of passed values.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_BAG_AGG">
+ <funcprototype id="fproto_BAG_AGG">
+ <funcdef>vector <function>DB.DBA.BAG_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_BAG_AGG"><title>Description</title>
+ <para><function>DB.DBA.BAG_AGG()</function> returns a vector of passed values.</para>
+ <para>This is similar to <link linkend="fn_VECTOR_AGG()">DB.DBA.VECTOR_AGG()</link> and returns a vector of
+ passed values but the order of items in the vector is not predefined and may vary from run to run.</para>
+ <para>A query with <function>DB.DBA.BAG_AGG()</function> may work faster than a similar query with
+<link linkend="fn_VECTOR_AGG()">DB.DBA.VECTOR_AGG()</link> because <function>DB.DBA.BAG_AGG()</function> gives more
+freedom to the SQL optimizer. If the order is not important for your application, consider using of <function>DB.DBA.BAG_AGG()</function> .
+ </para>
+ </refsect1>
+ <refsect1 id="params_BAG_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_BAG_AGG"><title>Return Types</title>
+ <para>Any</para>
+ </refsect1>
+ <refsect1 id="examples_BAG_AGG"><title>Examples</title>
+ <example id="ex_BAG_AGG_1"><title></title>
+<programlisting><![CDATA[
+SELECT DB.DBA.BAG_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_BAG_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
92 docsrc/xmlsource/funcref/BAG_CONCAT_AGG.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_BAG_CONCAT_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.BAG_CONCAT_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.BAG_CONCAT_AGG</refname>
+ <refpurpose>Expects SQL vectors as arguments and the result is a concatenation
+of all passed vectors.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_BAG_CONCAT_AGG">
+ <funcprototype id="fproto_BAG_CONCAT_AGG">
+ <funcdef>vector <function>DB.DBA.BAG_CONCAT_AGG</function></funcdef>
+ <paramdef><parameter>_items</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_BAG_CONCAT_AGG"><title>Description</title>
+ <para><function>DB.DBA.BAG_CONCAT_AGG</function> expects SQL vectors as arguments and the result is a concatenation
+of all passed vectors.
+ </para>
+ </refsect1>
+ <refsect1 id="params_BAG_CONCAT_AGG"><title>Parameters</title>
+ <refsect2><title>_items</title>
+ <para>SQL vectors.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_BAG_CONCAT_AGG"><title>Return Types</title>
+ <para>Any
+ </para>
+ </refsect1>
+ <refsect1 id="examples_BAG_CONCAT_AGG"><title>Examples</title>
+ <example id="ex_BAG_CONCAT_AGG_1"><title></title>
+ <para>The most typical usage is the composing of get-keyword style vector, for ex:
+ </para>
+<programlisting><![CDATA[
+ SELECT DB.DBA.BAG_CONCAT_AGG (vector (U_NAME, U_ID))
+ FROM DB.DBA.SYS_USERS
+ORDER BY U_NAME;
+]]></programlisting>
+ <para>which returns a vector of passed values. The order of items in the vector repeats the order of passing
+ argument vectors to the aggregate.
+ </para>
+<programlisting><![CDATA[
+ (dba, 0, dav, 2, administrators, 3, nobody, 5, nogroup, 6, __rdf_repl, 7, SPARQL_SELECT, 100, SPARQL_SPONGE, 101, ... )
+No. of rows in result: 1
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_BAG_CONCAT_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
86 docsrc/xmlsource/funcref/BAG_OF_NONNULLS_AGG.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_BAG_OF_NONNULLS_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.BAG_OF_NONNULLS_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.BAG_OF_NONNULLS_AGG</refname>
+ <refpurpose>Returns a vector of passed values ingoring NULL arguments.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_BAG_OF_NONNULLS_AGG">
+ <funcprototype id="fproto_BAG_OF_NONNULLS_AGG">
+ <funcdef>vector <function>DB.DBA.BAG_OF_NONNULLS_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_BAG_OF_NONNULLS_AGG"><title>Description</title>
+ <para><function>DB.DBA.BAG_OF_NONNULLS_AGG</function> returns a vector of passed values.
+ Similar to <link linkend="fn_VECTOR_OF_NONNULLS_AGG()">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link>
+ but ignores NULL arguments.</para>
+ <para>The order of items in the vector is not predefined and may vary from run to run.</para>
+ </refsect1>
+ <refsect1 id="params_BAG_OF_NONNULLS_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_BAG_OF_NONNULLS_AGG"><title>Return Types</title>
+ <para>Any
+ </para>
+ </refsect1>
+ <refsect1 id="examples_BAG_OF_NONNULLS_AGG"><title>Examples</title>
+ <example id="ex_BAG_OF_NONNULLS_AGG_1"><title></title>
+<programlisting><![CDATA[
+SELECT DB.DBA.BAG_OF_NONNULLS_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+<programlisting><![CDATA[
+SELECT DB.DBA.BAG_OF_NONNULLS_AGG (subquery.Y)
+FROM (SELECT Y FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_BAG_OF_NONNULLS_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
82 docsrc/xmlsource/funcref/BAG_OF_NONNULLS_OR_NULL_AGG.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_BAG_OF_NONNULLS_OR_NULL_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG</refname>
+ <refpurpose>Returns a vector of passed values ingoring NULL arguments.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_BAG_OF_NONNULLS_OR_NULL_AGG">
+ <funcprototype id="fproto_BAG_OF_NONNULLS_OR_NULL_AGG">
+ <funcdef>vector <function>DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_BAG_OF_NONNULLS_OR_NULL_AGG"><title>Description</title>
+ <para><function>DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG</function> returns a vector of passed values.
+ Similar to <link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link> but returns NULL
+instead of an empty vector if no arguments were passed or only NULLs were passed.</para>
+ <para>The order of items in the vector is not predefined and may vary from run to run.</para>
+ </refsect1>
+ <refsect1 id="params_BAG_OF_NONNULLS_OR_NULL_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_BAG_OF_NONNULLS_OR_NULL_AGG"><title>Return Types</title>
+ <para>Any. If no arguments were passed teturns NULL instead of an empty vector or only NULLs were passed.
+ </para>
+ </refsect1>
+ <refsect1 id="examples_BAG_OF_NONNULLS_OR_NULL_AGG"><title>Examples</title>
+ <example id="ex_BAG_OF_NONNULLS_OR_NULL_AGG_1"><title></title>
+<programlisting><![CDATA[
+SELECT DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_BAG_OF_NONNULLS_OR_NULL_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
83 docsrc/xmlsource/funcref/BAG_OR_NULL_AGG.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_BAG_OR_NULL_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.BAG_OR_NULL_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.BAG_OR_NULL_AGG</refname>
+ <refpurpose>Returns a vector of passed values.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_BAG_OR_NULL_AGG">
+ <funcprototype id="fproto_BAG_OR_NULL_AGG">
+ <funcdef>vector <function>DB.DBA.BAG_OR_NULL_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_BAG_OR_NULL_AGG"><title>Description</title>
+ <para><function>DB.DBA.BAG_OR_NULL_AGG</function> returns a vector of passed values.
+ Similar to <link linkend="fn_BAG_AGG()">DB.DBA.BAG_AGG()</link> but returns NULL instead of an empty vector
+ if no arguments were actually passed.</para>
+ <para>The order of items in the vector is not predefined and may vary from run to run.
+ </para>
+ </refsect1>
+ <refsect1 id="params_BAG_OR_NULL_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_BAG_OR_NULL_AGG"><title>Return Types</title>
+ <para>Any. If no arguments were actually passed returns NULL instead of an empty vector.
+ </para>
+ </refsect1>
+ <refsect1 id="examples_BAG_OR_NULL_AGG"><title>Examples</title>
+ <example id="ex_BAG_OR_NULL_AGG_1"><title></title>
+<programlisting><![CDATA[
+SELECT DB.DBA.BAG_OR_NULL_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_BAG_OR_NULL_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
18 docsrc/xmlsource/funcref/GROUP_CONCAT.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="fn_GROUP_CONCAT">
<refmeta>
- <refentrytitle>GROUP_CONCAT</refentrytitle>
+ <refentrytitle>DB.DBA.GROUP_CONCAT</refentrytitle>
<refmiscinfo>rdf</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>GROUP_CONCAT</refname>
+ <refname>DB.DBA.GROUP_CONCAT</refname>
<refpurpose>returns an arbitrary value from the multiset passed to it.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="fsyn_GROUP_CONCAT">
<funcprototype id="fproto_GROUP_CONCAT">
- <funcdef><function>GROUP_CONCAT</function></funcdef>
+ <funcdef><function>DB.DBA.GROUP_CONCAT</function></funcdef>
<paramdef>in <parameter>token</parameter> varchar</paramdef>
<paramdef>in <parameter>delim</parameter> varchar</paramdef>
</funcprototype>
@@ -19,7 +19,7 @@
</refsynopsisdiv>
<refsect1 id="desc_GROUP_CONCAT">
<title>Description</title>
- <para>GROUP_CONCAT is aggregate function that performs a string concatenation across
+ <para>DB.DBA.GROUP_CONCAT is aggregate function that performs a string concatenation across
the values of an expression with a group. The order of the strings is not specified.
The separator character used in the concatenation may be given with the scalar
argument delimiter.</para>
@@ -61,7 +61,6 @@ name callret-1
ANY ANY
________________________________________________
Jonas Smedegaard nodeID://b6190457 , nodeID://b6190507
-Dimitar Dimitrov http://mitko.dnsalias.net:8005/dataspace/person/dav#based_near , http://ods-qa.openlinksw.com/dataspace/person/dav1#based_near , http://ods-qa.openlinksw.com/dataspace/person/dav2#based_near
Adam Harvey nodeID://b780751
John Breslin nodeID://b56694
John Breslin nodeID://b56694
@@ -70,6 +69,7 @@ Leo Sauermann nodeID://b53598
Andreas Harth http://dbpedia.org/resource/Karlsruhe , nodeID://b53559 , nodeID://b53569
Alexandre Passant http://dbpedia.org/resource/Galway
Leon Lord http://ods-qa.openlinksw.com/dataspace/person/t1#based_near
+Leon Smith http://ods-qa.openlinksw.com/dataspace/person/t2#based_near
No. of rows in result: 10
]]></programlisting>
@@ -77,9 +77,11 @@ No. of rows in result: 10
</refsect1>
<refsect1 id="seealso_GROUP_CONCAT">
<title>See Also</title>
- <para><link linkend="fn_SAMPLE"><function>SAMPLE</function></link></para>
- <para><link linkend="fn_GROUP_DIGEST"><function>GROUP_DIGEST</function></link></para>
- <para><link linkend="samplegroupconcatdigest">Differences between SAMPLE, GROUP_CONCAT and GROUP_DIGEST functions usage.</link></para>
+ <para><link linkend="fn_SAMPLE"><function>DB.DBA.SAMPLE</function></link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT"><function>DB.DBA.GROUP_CONCAT_DISTINCT</function></link></para>
+ <para><link linkend="fn_GROUP_DIGEST"><function>DB.DBA.GROUP_DIGEST</function></link></para>
+ <para><link linkend="samplegroupconcatdigest">Differences between DB.DBA.SAMPLE, DB.DBA.GROUP_CONCAT and
+ DB.DBA.GROUP_DIGEST functions usage.</link></para>
</refsect1>
</refentry>
View
101 docsrc/xmlsource/funcref/GROUP_CONCAT_DISTINCT.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_GROUP_CONCAT_DISTINCT">
+ <refmeta>
+ <refentrytitle>DB.DBA.GROUP_CONCAT_DISTINCT</refentrytitle>
+ <refmiscinfo>rdf</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.GROUP_CONCAT_DISTINCT</refname>
+ <refpurpose>returns a string that is concatenation of token strings delimited with delimiter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_GROUP_CONCAT_DISTINCT">
+ <funcprototype id="fproto_GROUP_CONCAT_DISTINCT">
+ <funcdef><function>DB.DBA.GROUP_CONCAT_DISTINCT</function></funcdef>
+ <paramdef>in <parameter>token</parameter> varchar</paramdef>
+ <paramdef>in <parameter>delim</parameter> varchar</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_GROUP_CONCAT_DISTINCT">
+ <title>Description</title>
+ <para>DB.DBA.GROUP_CONCAT_DISTINCT is aggregate function that performs a string concatenation across
+ the values of an expression with a group. The order of the strings is not specified.
+ The separator character used in the concatenation may be given with the scalar
+ argument delimiter.</para>
+ <para>Note: the "sql:" prefix is mandatory when this aggregate is used in SPARQL queries.
+ In SQL queries the prefix is "DB.DBA".
+ </para>
+ </refsect1>
+ <refsect1 id="params_GROUP_CONCAT_DISTINCT">
+ <title>Parameters</title>
+ <refsect2><title>token</title>
+ <para>An item that should be added to a delimited list.</para>
+ </refsect2>
+ <refsect2><title>delim</title>
+ <para>The delimeter character to be used in the concatenation.</para>
+ </refsect2>
+
+ </refsect1>
+ <refsect1 id="ret_GROUP_CONCAT_DISTINCT"><title>Return Types</title>
+ <para>any</para>
+ </refsect1>
+ <refsect1 id="examples_GROUP_CONCAT_DISTINCT">
+ <title>Examples</title>
+ <example id="ex_GROUP_CONCAT_DISTINCT"><title></title>
+<programlisting><![CDATA[
+SQL>SPARQL
+SELECT ?name, (sql:GROUP_CONCAT_DISTINCT(?near, ' , '))
+WHERE
+ {
+ GRAPH ?g
+ {
+ [] a foaf:Person ;
+ foaf:name ?name ;
+ foaf:based_near ?near
+ }
+ }
+LIMIT 2
+
+name callret-1
+ANY ANY
+________________________________________________
+Donny Hathaway http://linkeddata.uriburner.com/about/id/entity/http/sws.geonames.org/3996063/ , http://linkeddata.uriburner.com/about/id/entity/http/sws.geonames.org/4990729/ , ..
+Jill Scott http://linkeddata.uriburner.com/about/id/entity/http/sws.geonames.org/3996034/ , http://linkeddata.uriburner.com/about/id/entity/http/sws.geonames.org/4990735/ , ...
+No. of rows in result: 2
+
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_GROUP_CONCAT_DISTINCT">
+ <title>See Also</title>
+ <para><link linkend="fn_SAMPLE"><function>DB.DBA.SAMPLE</function></link></para>
+ <para><link linkend="fn_GROUP_CONCAT"><function>DB.DBA.GROUP_CONCAT</function></link></para>
+ <para><link linkend="fn_GROUP_DIGEST"><function>DB.DBA.GROUP_DIGEST</function></link></para>
+ <para><link linkend="samplegroupconcatdigest">Differences between DB.DBA.SAMPLE, DB.DBA.GROUP_CONCAT,
+ DB.DBA.GROUP_CONCAT_DISTINCT and DB.DBA.GROUP_DIGEST functions usage.</link></para>
+ </refsect1>
+</refentry>
+
View
16 docsrc/xmlsource/funcref/GROUP_DIGEST.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="fn_GROUP_DIGEST">
<refmeta>
- <refentrytitle>GROUP_DIGEST</refentrytitle>
+ <refentrytitle>DB.DBA.GROUP_DIGEST</refentrytitle>
<refmiscinfo>rdf</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>GROUP_DIGEST</refname>
+ <refname>DB.DBA.GROUP_DIGEST</refname>
<refpurpose>returns an arbitrary value from the multiset passed to it.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="fsyn_GROUP_DIGEST">
<funcprototype id="fproto_GROUP_DIGEST">
- <funcdef><function>GROUP_DIGEST</function></funcdef>
+ <funcdef><function>DB.DBA.GROUP_DIGEST</function></funcdef>
<paramdef>in <parameter>token</parameter> varchar</paramdef>
<paramdef>in <parameter>delim</parameter> varchar</paramdef>
<paramdef>in <parameter>maxlen</parameter> integer</paramdef>
@@ -21,7 +21,7 @@
</refsynopsisdiv>
<refsect1 id="desc_GROUP_DIGEST">
<title>Description</title>
- <para>GROUP_DIGEST is aggregate function that performs a string concatenation across
+ <para>DB.DBA.GROUP_DIGEST is aggregate function that performs a string concatenation across
the values of an expression with a group. The order of the strings is not specified.
The separator character used in the concatenation may be given with the scalar
argument delimiter. The function is an extended version of sql:GROUP_CONCAT(), with
@@ -71,9 +71,11 @@ WHERE
</refsect1>
<refsect1 id="seealso_GROUP_DIGEST">
<title>See Also</title>
- <para><link linkend="fn_SAMPLE"><function>SAMPLE</function></link></para>
- <para><link linkend="fn_GROUP_CONCAT"><function>GROUP_CONCAT</function></link></para>
- <para><link linkend="samplegroupconcatdigest">Differences between SAMPLE, GROUP_CONCAT and GROUP_DIGEST functions usage.</link></para>
+ <para><link linkend="fn_SAMPLE"><function>DB.DBA.SAMPLE</function></link></para>
+ <para><link linkend="fn_GROUP_CONCAT"><function>DB.DBA.GROUP_CONCAT</function></link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT"><function>DB.DBA.GROUP_CONCAT_DISTINCT</function></link></para>
+ <para><link linkend="samplegroupconcatdigest">Differences between DB.DBA.SAMPLE, DB.DBA.GROUP_CONCAT and
+ DB.DBA.GROUP_DIGEST functions usage.</link></para>
</refsect1>
</refentry>
View
16 docsrc/xmlsource/funcref/SAMPLE.xml
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="fn_SAMPLE">
<refmeta>
- <refentrytitle>SAMPLE</refentrytitle>
+ <refentrytitle>DB.DBA.SAMPLE</refentrytitle>
<refmiscinfo>rdf</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>SAMPLE</refname>
+ <refname>DB.DBA.SAMPLE</refname>
<refpurpose>returns an arbitrary value from the multiset passed to it.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="fsyn_sample">
<funcprototype id="fproto_sample">
- <funcdef><function>SAMPLE</function></funcdef>
+ <funcdef><function>DB.DBA.SAMPLE</function></funcdef>
<paramdef>in <parameter>token</parameter> varchar</paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="desc_sample">
<title>Description</title>
- <para>SAMPLE is aggregate function that returns an arbitrary value from the multiset passed to it.</para>
+ <para>DB.DBA.SAMPLE is aggregate function that returns an arbitrary value from the multiset passed to it.</para>
<para>Note: Using the "sql:" prefix is mandatory for this aggregate.</para>
</refsect1>
<refsect1 id="params_sample">
@@ -54,8 +54,10 @@ No. of rows in result: 1
</refsect1>
<refsect1 id="seealso_sample">
<title>See Also</title>
- <para><link linkend="fn_GROUP_CONCAT"><function>GROUP_CONCAT</function></link></para>
- <para><link linkend="fn_GROUP_DIGEST"><function>GROUP_DIGEST</function></link></para>
- <para><link linkend="samplegroupconcatdigest">Differences between SAMPLE, GROUP_CONCAT and GROUP_DIGEST functions usage.</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT"><function>DB.DBA.GROUP_CONCAT_DISTINCT</function></link></para>
+ <para><link linkend="fn_GROUP_CONCAT"><function>DB.DBA.GROUP_CONCAT</function></link></para>
+ <para><link linkend="fn_GROUP_DIGEST"><function>DB.DBA.GROUP_DIGEST</function></link></para>
+ <para><link linkend="samplegroupconcatdigest">Differences between DB.DBA.SAMPLE, DB.DBA.GROUP_CONCAT and
+ DB.DBA.GROUP_DIGEST functions usage.</link></para>
</refsect1>
</refentry>
View
91 docsrc/xmlsource/funcref/VECTOR_AGG.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_VECTOR_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.VECTOR_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.VECTOR_AGG</refname>
+ <refpurpose>Returns a vector of passed values.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_VECTOR_AGG">
+ <funcprototype id="fproto_VECTOR_AGG">
+ <funcdef>vector <function>DB.DBA.VECTOR_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_VECTOR_AGG"><title>Description</title>
+ <para><function>DB.DBA.VECTOR_AGG</function> returns a vector of passed values. The order of items in the vector
+repeats the order of passing individual values to the aggregate.
+ </para>
+ </refsect1>
+ <refsect1 id="params_VECTOR_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_VECTOR_AGG"><title>Return Types</title>
+ <para>Any
+ </para>
+ </refsect1>
+ <refsect1 id="examples_VECTOR_AGG"><title>Examples</title>
+ <example id="ex_VECTOR_AGG_1"><title></title>
+ <para>As the order of items in the vector repeats the order of passing individual values to the aggregate,
+ it is possible to write, for instance:
+ </para>
+<programlisting><![CDATA[
+-- Get an ordered vector of X-es
+SELECT DB.DBA.VECTOR_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>or</para>
+<programlisting><![CDATA[
+SELECT DB.DBA.VECTOR_AGG (subquery.Y)
+FROM (SELECT Y FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>and get vector of Y-s that are ordered by matching values of X-es.</para>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_VECTOR_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
92 docsrc/xmlsource/funcref/VECTOR_CONCAT_AGG.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_VECTOR_CONCAT_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.VECTOR_CONCAT_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.VECTOR_CONCAT_AGG</refname>
+ <refpurpose>Expects SQL vectors as arguments and the result is a concatenation
+of all passed vectors.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_VECTOR_CONCAT_AGG">
+ <funcprototype id="fproto_VECTOR_CONCAT_AGG">
+ <funcdef>vector <function>DB.DBA.VECTOR_CONCAT_AGG</function></funcdef>
+ <paramdef><parameter>_items</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_VECTOR_CONCAT_AGG"><title>Description</title>
+ <para><function>DB.DBA.VECTOR_CONCAT_AGG</function> expects SQL vectors as arguments and the result is a concatenation
+of all passed vectors.
+ </para>
+ </refsect1>
+ <refsect1 id="params_VECTOR_CONCAT_AGG"><title>Parameters</title>
+ <refsect2><title>_items</title>
+ <para>SQL vectors.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_VECTOR_CONCAT_AGG"><title>Return Types</title>
+ <para>Any
+ </para>
+ </refsect1>
+ <refsect1 id="examples_VECTOR_CONCAT_AGG"><title>Examples</title>
+ <example id="ex_VECTOR_CONCAT_AGG_1"><title></title>
+ <para>The most typical usage is the composing of get-keyword style vector, for ex:
+ </para>
+<programlisting><![CDATA[
+ SELECT DB.DBA.VECTOR_CONCAT_AGG (vector (U_NAME, U_ID))
+ FROM DB.DBA.SYS_USERS
+ORDER BY U_NAME;
+]]></programlisting>
+ <para>which returns a vector of passed values. The order of items in the vector repeats the order of passing
+ argument vectors to the aggregate.
+ </para>
+<programlisting><![CDATA[
+ (dba, 0, dav, 2, administrators, 3, nobody, 5, nogroup, 6, __rdf_repl, 7, SPARQL_SELECT, 100, SPARQL_SPONGE, 101, ... )
+No. of rows in result: 1
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_VECTOR_CONCAT_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
90 docsrc/xmlsource/funcref/VECTOR_OF_NONNULLS_AGG.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_VECTOR_OF_NONNULLS_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.VECTOR_OF_NONNULLS_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.VECTOR_OF_NONNULLS_AGG</refname>
+ <refpurpose>Returns a vector of passed values ingoring NULL arguments.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_VECTOR_OF_NONNULLS_AGG">
+ <funcprototype id="fproto_VECTOR_OF_NONNULLS_AGG">
+ <funcdef>vector <function>DB.DBA.VECTOR_OF_NONNULLS_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_VECTOR_OF_NONNULLS_AGG"><title>Description</title>
+ <para><function>DB.DBA.VECTOR_OF_NONNULLS_AGG</function> returns a vector of passed values.
+ Similar to <link linkend="fn_VECTOR_AGG()">DB.DBA.VECTOR_AGG()</link> but ignores NULL arguments.</para>
+ <para>The order of items in the vector repeats the order of passing individual values to the aggregate.</para>
+ </refsect1>
+ <refsect1 id="params_VECTOR_OF_NONNULLS_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_VECTOR_OF_NONNULLS_AGG"><title>Return Types</title>
+ <para>Any
+ </para>
+ </refsect1>
+ <refsect1 id="examples_VECTOR_OF_NONNULLS_AGG"><title>Examples</title>
+ <example id="ex_VECTOR_OF_NONNULLS_AGG_1"><title></title>
+ <para>As the order of items in the vector repeats the order of passing individual values to the aggregate,
+ it is possible to write, for instance:
+ </para>
+<programlisting><![CDATA[
+-- Get an ordered vector of X-es
+SELECT DB.DBA.VECTOR_OF_NONNULLS_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>or</para>
+<programlisting><![CDATA[
+SELECT DB.DBA.VECTOR_OF_NONNULLS_AGG (subquery.Y)
+FROM (SELECT Y FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>and get vector of Y-s that are ordered by matching values of X-es.</para>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_VECTOR_OF_NONNULLS_AGG"><title>See Also</title>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
92 docsrc/xmlsource/funcref/VECTOR_OF_NONNULLS_OR_NULL_AGG.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG</refname>
+ <refpurpose>Returns a vector of passed values ingoring NULL arguments.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_VECTOR_OF_NONNULLS_OR_NULL_AGG">
+ <funcprototype id="fproto_VECTOR_OF_NONNULLS_OR_NULL_AGG">
+ <funcdef>vector <function>DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_VECTOR_OF_NONNULLS_OR_NULL_AGG"><title>Description</title>
+ <para><function>DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG</function> returns a vector of passed values.
+ Similar to <link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link> but returns NULL
+instead of an empty vector if no arguments were passed or only NULLs were passed.
+</para>
+ </refsect1>
+ <refsect1 id="params_VECTOR_OF_NONNULLS_OR_NULL_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_VECTOR_OF_NONNULLS_OR_NULL_AGG"><title>Return Types</title>
+ <para>Any. If no arguments were passed teturns NULL instead of an empty vector or only NULLs were passed.
+ </para>
+ </refsect1>
+ <refsect1 id="examples_VECTOR_OF_NONNULLS_OR_NULL_AGG"><title>Examples</title>
+ <example id="ex_VECTOR_OF_NONNULLS_OR_NULL_AGG_1"><title></title>
+ <para>As the order of items in the vector repeats the order of passing individual values to the aggregate,
+ it is possible to write, for instance:
+ </para>
+<programlisting><![CDATA[
+-- Get an ordered vector of X-es
+SELECT DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>or</para>
+<programlisting><![CDATA[
+SELECT DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG (subquery.Y)
+FROM (SELECT Y FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>and get vector of Y-s that are ordered by matching values of X-es.</para>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_VECTOR_OF_NONNULLS_OR_NULL_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
93 docsrc/xmlsource/funcref/VECTOR_OR_NULL_AGG.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_VECTOR_OR_NULL_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.VECTOR_OR_NULL_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.VECTOR_OR_NULL_AGG</refname>
+ <refpurpose>Returns a vector of passed values.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_VECTOR_OR_NULL_AGG">
+ <funcprototype id="fproto_VECTOR_OR_NULL_AGG">
+ <funcdef>vector <function>DB.DBA.VECTOR_OR_NULL_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_VECTOR_OR_NULL_AGG"><title>Description</title>
+ <para><function>DB.DBA.VECTOR_OR_NULL_AGG</function> returns a vector of passed values.
+ Similar to <link linkend="fn_VECTOR_AGG()">DB.DBA.VECTOR_AGG()</link> but returns NULL instead of an empty vector
+ if no arguments were actually passed.</para>
+ <para>The order of items in the vector repeats the order of passing individual values to the aggregate.
+ </para>
+ </refsect1>
+ <refsect1 id="params_VECTOR_OR_NULL_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Value of item for aggregation.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_VECTOR_OR_NULL_AGG"><title>Return Types</title>
+ <para>Any. If no arguments were actually passed returns NULL instead of an empty vector.
+ </para>
+ </refsect1>
+ <refsect1 id="examples_VECTOR_OR_NULL_AGG"><title>Examples</title>
+ <example id="ex_VECTOR_OR_NULL_AGG_1"><title></title>
+ <para>As the order of items in the vector repeats the order of passing individual values to the aggregate,
+ it is possible to write, for instance:
+ </para>
+<programlisting><![CDATA[
+-- Get an ordered vector of X-es
+SELECT DB.DBA.VECTOR_OR_NULL_AGG (subquery.X)
+FROM (SELECT X FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>or</para>
+<programlisting><![CDATA[
+SELECT DB.DBA.VECTOR_OR_NULL_AGG (subquery.Y)
+FROM (SELECT Y FROM ... ORDER BY X) as subquery
+]]></programlisting>
+ <para>and get vector of Y-s that are ordered by matching values of X-es.</para>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_VECTOR_OR_NULL_AGG"><title>See Also</title>
+ <para><link linkend="fn_XQ_SEQUENCE_AGG">DB.DBA.XQ_SEQUENCE_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
2 docsrc/xmlsource/funcref/XMLAGG.xml
@@ -65,7 +65,7 @@ inner SELECT statement that has an ORDER BY clause, not e.g. from a table refere
</para>
</refsect2>
</refsect1>
- <refsect1 id="ret_XMLAGG"><title>Parameters</title>
+ <refsect1 id="ret_XMLAGG"><title>Return Types</title>
<para>The aggregate returns a vector that is a suitable input for functions <function>XMLELEMENT</function>,
<function>XMLCONCAT</function> and <function>xml_tree_doc</function>.
</para>
View
92 docsrc/xmlsource/funcref/XQ_SEQUENCE_AGG.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_XQ_SEQUENCE_AGG">
+ <refmeta>
+ <refentrytitle>DB.DBA.XQ_SEQUENCE_AGG</refentrytitle>
+ <refmiscinfo>aggr</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.XQ_SEQUENCE_AGG</refname>
+ <refpurpose>Creates an XQuery sequence object that consists of all values passed the the aggregate.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_XQ_SEQUENCE_AGG">
+ <funcprototype id="fproto_XQ_SEQUENCE_AGG">
+ <funcdef>vector <function>DB.DBA.XQ_SEQUENCE_AGG</function></funcdef>
+ <paramdef><parameter>value_expression</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_XQ_SEQUENCE_AGG"><title>Description</title>
+ <para><function>DB.DBA.XQ_SEQUENCE_AGG</function> creates an XQuery sequence object that consists of all values
+ passed the aggregate.
+ </para>
+ </refsect1>
+ <refsect1 id="params_XQ_SEQUENCE_AGG"><title>Parameters</title>
+ <refsect2><title>value_expression</title>
+ <para>Values are "flatten" before being added to the sequence. It means that --- NULLs are not added at all.</para>
+ <para>If an XQuery sequence object is passed to the aggregate then all items of sequence are appended to the
+ end of the accumulated result, one after other. Thus the aggregate of a sequence ('A', 'B'), a string 'C' and
+ a sequence ('D', 'E', 'F') is a sequence ('A', 'B', 'C', 'D', 'E', 'F'), not something like (('A', 'B'), 'C', ('D', 'E', 'F')).
+ </para>
+ <para>If an SQL vector is passed to the aggregate then every item of the vector is appended to result separately, and if an
+ item is in turn a nested vector or a nested XQuery sequence then every sub-item is appended separately, in a
+ recursive manner. So SQL vectors are "flattened" recursively.
+ </para>
+ <para>If the argument of DB.DBA.XQ_SEQUENCE_AGG () is a narrow string or a wide string it is converted to UTF-8
+ before being added to the sequence. If an SQL vector contains a narrow or wide string then it is also converted
+ to UTF-8. However if a narrow string is an item of an XQuery sequence then it is treated as UTF-8 and not
+ subject to encoding.
+ </para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_XQ_SEQUENCE_AGG"><title>Return Types</title>
+ <para>Any
+ </para>
+ </refsect1>
+ <refsect1 id="examples_XQ_SEQUENCE_AGG"><title>Examples</title>
+ <example id="ex_XQ_SEQUENCE_AGG_1"><title></title>
+<programlisting><![CDATA[
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_XQ_SEQUENCE_AGG"><title>See Also</title>
+ <para><link linkend="fn_xquery_eval">xquery_eval()</link></para>
+ <para><link linkend="fn_VECTOR_AGG">DB.DBA.VECTOR_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_AGG">DB.DBA.VECTOR_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OR_NULL_AGG">DB.DBA.VECTOR_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_OF_NONNULLS_OR_NULL_AGG">DB.DBA.VECTOR_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_VECTOR_CONCAT_AGG">DB.DBA.VECTOR_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_BAG_AGG">DB.DBA.BAG_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_AGG">DB.DBA.BAG_OF_NONNULLS_AGG()</link></para>
+ <para><link linkend="fn_BAG_OR_NULL_AGG">DB.DBA.BAG_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_OF_NONNULLS_OR_NULL_AGG">DB.DBA.BAG_OF_NONNULLS_OR_NULL_AGG()</link></para>
+ <para><link linkend="fn_BAG_CONCAT_AGG">DB.DBA.BAG_CONCAT_AGG()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT">DB.DBA.GROUP_CONCAT()</link></para>
+ <para><link linkend="fn_GROUP_CONCAT_DISTINCT">DB.DBA.GROUP_CONCAT_DISTINCT()</link></para>
+ <para><link linkend="fn_GROUP_DIGEST">DB.DBA.GROUP_DIGEST()</link></para>
+ <para><link linkend="fn_SAMPLE">DB.DBA.SAMPLE()</link></para>
+ </refsect1>
+</refentry>
+
View
2 docsrc/xmlsource/funcref/exec.xml
@@ -156,7 +156,7 @@
<screen>
create procedure tb_is_empty (in tb varchar)
{
- declare state, msg, 1, descs, rows any;
+ declare state, msg, descs, rows any;
state := '00000';
exec (sprintf ('select 1 from %s', tb), state,
msg, vector (), 1, descs, rows);
View
111 docsrc/xmlsource/funcref/isgeometry.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_isgeometry">
+ <refmeta>
+ <refentrytitle>isgeometry</refentrytitle>
+ <refmiscinfo>geo</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>isgeometry</refname>
+ <refpurpose>Returns 1 if the argument is a geometry.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_isgeometry">
+ <funcprototype id="fproto_isgeometry">
+ <funcdef><function>isgeometry</function></funcdef>
+ <paramdef>in <parameter>x</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_isgeometry">
+ <title>Description</title>
+ <para>Returns 1 if the argument is a geometry.</para>
+ </refsect1>
+ <refsect1 id="params_isgeometry">
+ <title>Parameters</title>
+ <refsect2><title>x</title>
+ <para>The geometry value.</para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_isgeometry"><title>Return Types</title>
+ <para>Returns int.</para>
+ </refsect1>
+ <refsect1 id="examples_isgeometry">
+ <title>Examples</title>
+ <example id="ex_isgeometry"><title></title>
+ <para></para>
+<programlisting><![CDATA[
+SQL>SELECT isgeometry(st_point(0, 52));
+callret
+VARCHAR
+___________________________
+ 1
+No. of rows in result: 1
+
+SQL>SPARQL
+SELECT ?m
+WHERE
+ {
+ ?m a <http://dbpedia.org/ontology/City> .
+ FILTER (bif:isgeometry(?m) = 0)
+ }
+LIMIT 10
+
+m
+VARCHAR
+__________________________________________________
+http://dbpedia.org/resource/Berg%2C_Upper_Bavaria
+http://dbpedia.org/resource/Grasbrunn
+http://dbpedia.org/resource/Putzbrunn
+http://dbpedia.org/resource/Ottobrunn
+http://dbpedia.org/resource/Dietramszell
+http://dbpedia.org/resource/Prutting
+http://dbpedia.org/resource/Gauting
+http://dbpedia.org/resource/Lucerne
+http://dbpedia.org/resource/Hamburg
+http://dbpedia.org/resource/Bavaria
+No. of rows in result: 10
+
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_isgeometry">
+ <title>See Also</title>
+ <para><link linkend="fn_st_point"><function>st_point</function></link></para>
+ <para><link linkend="fn_st_x"><function>st_x</function></link></para>
+ <para><link linkend="fn_st_y"><function>st_y</function></link></para>
+ <para><link linkend="fn_st_distance"><function>st_distance</function></link></para>
+ <para><link linkend="fn_st_srid"><function>st_srid</function></link></para>
+ <para><link linkend="fn_st_setsrid"><function>st_setsrid</function></link></para>
+ <para><link linkend="fn_st_astext"><function>st_astext</function></link></para>
+ <para><link linkend="fn_st_geomfromtext"><function>st_geomfromtext</function></link></para>
+ <para><link linkend="fn_st_intersects"><function>st_intersects</function></link></para>
+ <para><link linkend="fn_st_contains"><function>st_contains</function></link></para>
+ <para><link linkend="fn_st_within"><function>st_within</function></link></para>
+ <para><link linkend="fn_geo_insert"><function>geo_insert</function></link></para>
+ <para><link linkend="fn_geo_delete"><function>geo_delete</function></link></para>
+ <para><link linkend="fn_rdf_geo_add"><function>DB.DBA.RDF_GEO_ADD</function></link></para>
+ <para><link linkend="fn_rdf_geo_fill"><function>DB.DBA.RDF_GEO_FILL</function></link></para>
+ </refsect1>
+</refentry>
View
95 docsrc/xmlsource/funcref/rdf_geo_add.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_rdf_geo_add">
+ <refmeta>
+ <refentrytitle>DB.DBA.RDF_GEO_ADD</refentrytitle>
+ <refmiscinfo>rdf</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.RDF_GEO_ADD</refname>
+ <refpurpose>Translates a geometry into a RDF box</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_rdf_geo_add">
+ <funcprototype id="fproto_rdf_geo_add">
+ <funcdef><function>DB.DBA.RDF_GEO_ADD</function></funcdef>
+ <paramdef>in <parameter>g</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_rdf_geo_add">
+ <title>Description</title>
+ <para>This function translates a geometry into a RDF box. It looks if an identical geometry
+already exists and if so assigns the existing id to it. If the geometry is new, it gets a new ID
+and is stored in the RDF literals table RDF_OBJ. At this time it is also automatically inserted
+into the RDF geometry index.</para>
+ <para><emphasis>Note:</emphasis> In a cluster situation one should use the dpipe mechanism
+for inserting into RDF quad so as to get large numbers of inserts into a single message. This
+is essential for performance.</para>
+ </refsect1>
+ <refsect1 id="params_rdf_geo_add">
+ <title>Parameters</title>
+ <refsect2><title>g</title>
+ <para>Geometry to be translated into RDF box.</para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_rdf_geo_add"><title>Return Types</title>
+ <para></para>
+ </refsect1>
+ <refsect1 id="examples_rdf_geo_add">
+ <title>Examples</title>
+ <example id="ex_rdf_geo_add"><title></title>
+ <para></para>
+<programlisting><![CDATA[
+INSERT INTO RDF_QUAD (g, s, p, o)
+VALUES (
+ "g",
+ "s",
+ iri_to_id ('http://www.w3.org/2003/01/geo/wgs84_pos#geometry'),
+ DB.DBA.rdf_geo_add (rdf_box (st_point (lng, lat), 256, 257, 0, 1)));
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_rdf_geo_add">
+ <title>See Also</title>
+ <para><link linkend="rdfsparqlgeospatcrg">Creating Geometries From RDF Data</link></para>
+ <para><link linkend="rdfsparqlgeospatprog">Programmatic Manipulation of Geometries in RDF</link></para>
+ <para><link linkend="rdfsparqlgeospatusg">Using Geometries With Existing Databases</link></para>
+ <para><link linkend="fn_st_point"><function>st_point</function></link></para>
+ <para><link linkend="fn_st_x"><function>st_x</function></link></para>
+ <para><link linkend="fn_st_y"><function>st_y</function></link></para>
+ <para><link linkend="fn_st_distance"><function>st_distance</function></link></para>
+ <para><link linkend="fn_st_srid"><function>st_srid</function></link></para>
+ <para><link linkend="fn_st_setsrid"><function>st_setsrid</function></link></para>
+ <para><link linkend="fn_st_astext"><function>st_astext</function></link></para>
+ <para><link linkend="fn_st_geomfromtext"><function>st_geomfromtext</function></link></para>
+ <para><link linkend="fn_st_intersects"><function>st_intersects</function></link></para>
+ <para><link linkend="fn_st_contains"><function>st_contains</function></link></para>
+ <para><link linkend="fn_st_within"><function>st_within</function></link></para>
+ <para><link linkend="fn_isgeometry"><function>isgeometry</function></link></para>
+ <para><link linkend="fn_geo_insert"><function>geo_insert</function></link></para>
+ <para><link linkend="fn_geo_delete"><function>geo_delete</function></link></para>
+ <para><link linkend="fn_rdf_geo_fill"><function>DB.DBA.RDF_GEO_FILL</function></link></para>
+ </refsect1>
+</refentry>
View
102 docsrc/xmlsource/funcref/rdf_geo_fill.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_rdf_geo_fill">
+ <refmeta>
+ <refentrytitle>DB.DBA.RDF_GEO_FILL</refentrytitle>
+ <refmiscinfo>rdf</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>DB.DBA.RDF_GEO_FILL</refname>
+ <refpurpose>Converts geo:lat and geo:long properties properties into geometries.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_rdf_geo_fill">
+ <funcprototype id="fproto_rdf_geo_fill">
+ <funcdef><function>DB.DBA.RDF_GEO_FILL</function></funcdef>
+ <paramdef><parameter>n_threads</parameter> integer (optional, default 4)</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_rdf_geo_fill">
+ <title>Description</title>
+ <para>Converts geo:lat and geo:long properties into geometries.
+This operation reads through all graphs and for each subject with at least one geo:lat and geo:long, a point
+geometry is made for each distinct lat/long pair where lat and long are in the same graph.</para>
+ <para>It should not happen in practice that a single subject has multiple lats or long within one graph.
+If this still happens, a geometry is made for each combination.
+The geometry is added to the subject with the lat and long as the value of the geo:geometry property.
+</para>
+ <para>This is performed in parallel on multiple threads and is optimized for cluster execution and
+done without transaction logging and is not transactional. To make the result persistent, the operator
+should do an explicit checkpoint by executing:</para>
+<programlisting><![CDATA[
+SQL>cl_exec ('checkpoint');
+]]></programlisting>
+ <para>on any process of a cluster or single server. Otherwise the result may be lost if the server
+terminates abnormally before an automatic checkpoint is made.</para>
+ </refsect1>
+ <refsect1 id="params_rdf_geo_fill">
+ <title>Parameters</title>
+ <refsect2><title>n_threads</title>
+ <para>Number of threads to run. Default is to run 4 threads that will make geomerty objects
+ (not counting the thread that searches for separate geo:lat and geo:long properties).</para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_rdf_geo_fill"><title>Return Types</title>
+ <para></para>
+ </refsect1>
+
+ <refsect1 id="examples_rdf_geo_fill">
+ <title>Examples</title>
+ <example id="ex_rdf_geo_fill"><title></title>
+ <para></para>
+<programlisting><![CDATA[
+SQL> rdf_geo_fill ();
+
+Done. -- 282 msec.
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_rdf_geo_fill">
+ <title>See Also</title>
+ <para><link linkend="rdfsparqlgeospatcrg">Creating Geometries From RDF Data</link></para>
+ <para><link linkend="rdfsparqlgeospatprog">Programmatic Manipulation of Geometries in RDF</link></para>
+ <para><link linkend="rdfsparqlgeospatusg">Using Geometries With Existing Databases</link></para>
+ <para><link linkend="fn_st_point"><function>st_point</function></link></para>
+ <para><link linkend="fn_st_x"><function>st_x</function></link></para>
+ <para><link linkend="fn_st_y"><function>st_y</function></link></para>
+ <para><link linkend="fn_st_distance"><function>st_distance</function></link></para>
+ <para><link linkend="fn_st_srid"><function>st_srid</function></link></para>
+ <para><link linkend="fn_st_setsrid"><function>st_setsrid</function></link></para>
+ <para><link linkend="fn_st_astext"><function>st_astext</function></link></para>
+ <para><link linkend="fn_st_geomfromtext"><function>st_geomfromtext</function></link></para>
+ <para><link linkend="fn_st_intersects"><function>st_intersects</function></link></para>
+ <para><link linkend="fn_st_contains"><function>st_contains</function></link></para>
+ <para><link linkend="fn_st_within"><function>st_within</function></link></para>
+ <para><link linkend="fn_isgeometry"><function>isgeometry</function></link></para>
+ <para><link linkend="fn_geo_insert"><function>geo_insert</function></link></para>
+ <para><link linkend="fn_geo_delete"><function>geo_delete</function></link></para>
+ <para><link linkend="fn_rdf_geo_add"><function>DB.DBA.RDF_GEO_ADD</function></link></para>
+ </refsect1>
+</refentry>
View
4 docsrc/xmlsource/funcref/rdf_load_rdfxml_mt.xml
@@ -17,6 +17,7 @@
<paramdef>in <parameter>graph</parameter> varchar</paramdef>
<paramdef><optional>in <parameter>log_mode</parameter> integer</optional></paramdef>
<paramdef><optional>in <parameter>threads</parameter> integer</optional></paramdef>
+ <paramdef><optional>in <parameter>transactional </parameter> integer</optional></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
@@ -41,6 +42,9 @@
<refsect2><title>threads</title>
<para>number of threads that insert quads into the database. It should not be less than 1, obviously; it is better to not set it greater than <emphasis>((N-2)/k)-1</emphasis> where <emphasis>N</emphasis> is the number of available CPU cores and <emphasis>k</emphasis> is the number of loadings that happen at the same time.</para>
</refsect2>
+ <refsect2><title>transactional</title>
+ <para>controls the transaction mode which is "0" by default i.e. off and can be turned on by setting it to "1".</para>
+ </refsect2>
</refsect1>
<refsect1 id="ret_rdf_load_rdfxml_mt"><title>Return Types</title>
<para>The return value is not specified and may be changed in future versions.</para>
View
4 docsrc/xmlsource/funcref/rdfs_rule_set.xml
@@ -70,8 +70,8 @@ Done. -- 15 msec.
SQL> SELECT * FROM DB.DBA.SYS_RDF_SCHEMA ;
RS_NAME RS_URI RS_G
VARCHAR NOT NULL VARCHAR NOT NULL VARCHAR
-_______________________________________________________________________________
-
+_______________________________________________________________________________
+
http://localhost:8890/dataspace http://localhost:8890/dataspace/inf NULL
http://www.w3.org/2002/07/owl# http://www.w3.org/2002/07/owl# NULL
myset http://mygraph.com NULL
View
102 docsrc/xmlsource/funcref/st_astext.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_st_astext">
+ <refmeta>
+ <refentrytitle>st_astext</refentrytitle>
+ <refmiscinfo>geo</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>st_astext</refname>
+ <refpurpose>Returns the well known text (WKT) representation of the geometry.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_st_astext">
+ <funcprototype id="fproto_st_astext">
+ <funcdef><function>st_astext</function></funcdef>
+ <paramdef>in <parameter>g</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_st_astext">
+ <title>Description</title>
+ <para>Returns the well known text (WKT) representation of the geometry.</para>
+ </refsect1>
+ <refsect1 id="params_st_astext">
+ <title>Parameters</title>
+ <refsect2><title>g</title>
+ <para>Geometry point</para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_st_astext"><title>Return Types</title>
+ <para>Returns varchar.</para>
+ </refsect1>
+ <refsect1 id="examples_st_astext">
+ <title>Examples</title>
+ <example id="ex_st_astext"><title></title>
+ <para></para>
+<programlisting><![CDATA[
+SQL>SPARQL
+SELECT DISTINCT (bif:st_astext(?geo))
+WHERE
+ {
+ ?m geo:geometry ?geo .
+
+ }
+LIMIT 10;
+callret-0
+ANY
+_________________________________
+POINT(-139.267 -90)
+POINT(-153.833 -86.9667)
+POINT(-163 -85.4167)
+POINT(-170.8 -85.1167)
+POINT(-142.176 -85.06)
+POINT(-142.258 -85.0478)
+POINT(-85.0331 -85.0378)
+POINT(-142.685 -85.0307)
+POINT(-143.654 -84.9921)
+POINT(-143.82 -84.9851)
+No. of rows in result: 10
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_st_astext">
+ <title>See Also</title>
+ <para><link linkend="fn_st_point"><function>st_point</function></link></para>
+ <para><link linkend="fn_st_x"><function>st_x</function></link></para>
+ <para><link linkend="fn_st_y"><function>st_y</function></link></para>
+ <para><link linkend="fn_st_distance"><function>st_distance</function></link></para>
+ <para><link linkend="fn_st_srid"><function>st_srid</function></link></para>
+ <para><link linkend="fn_st_setsrid"><function>st_setsrid</function></link></para>
+ <para><link linkend="fn_st_geomfromtext"><function>st_geomfromtext</function></link></para>
+ <para><link linkend="fn_st_intersects"><function>st_intersects</function></link></para>
+ <para><link linkend="fn_st_contains"><function>st_contains</function></link></para>
+ <para><link linkend="fn_st_within"><function>st_within</function></link></para>
+ <para><link linkend="fn_isgeometry"><function>isgeometry</function></link></para>
+ <para><link linkend="fn_geo_insert"><function>geo_insert</function></link></para>
+ <para><link linkend="fn_geo_delete"><function>geo_delete</function></link></para>
+ <para><link linkend="fn_rdf_geo_add"><function>DB.DBA.RDF_GEO_ADD</function></link></para>
+ <para><link linkend="fn_rdf_geo_fill"><function>DB.DBA.RDF_GEO_FILL</function></link></para>
+ </refsect1>
+</refentry>
View
130 docsrc/xmlsource/funcref/st_contains.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_st_contains">
+ <refmeta>
+ <refentrytitle>st_contains</refentrytitle>
+ <refmiscinfo>geo</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>st_contains</refname>
+ <refpurpose>Returns true if all points
+of a given geometry g2 are in another geometry g1.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_st_contains">
+ <funcprototype id="fproto_st_contains">
+ <funcdef><function>st_contains</function></funcdef>
+ <paramdef>in <parameter>g1</parameter> any</paramdef>
+ <paramdef>in <parameter>g2</parameter> any</paramdef>
+ <paramdef>in <parameter>prec</parameter> double precision</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_st_contains">
+ <title>Description</title>
+ <para>Returns true if all points of a given geometry g2 are in another geometry g1.
+If prec is supplied, this is a tolerance for the matching in units of linear distance
+appropriate to the srid. Both geometries should have the same srid.
+</para>
+ </refsect1>
+ <refsect1 id="params_st_contains">
+ <title>Parameters</title>
+ <refsect2><title>g1</title>
+ <para>The first geometry.</para>
+ </refsect2>
+ <refsect2><title>g2</title>
+ <para>The second geometry.</para>
+ </refsect2>
+ <refsect2><title>prec</title>
+ <para>A tolerance for the matching in units of linear distance appropriate to the srid.
+Default is 0.</para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_st_contains"><title>Return Types</title>
+ <para>Returns int.</para>
+ </refsect1>
+ <refsect1 id="examples_st_contains">
+ <title>Examples</title>
+ <example id="ex_st_contains"><title></title>
+ <para></para>
+<programlisting><![CDATA[
+SQL>SPARQL
+SELECT ?c COUNT (*)
+WHERE
+ {
+ ?m geo:geometry ?geo .
+ ?m a ?c .
+ FILTER (bif:st_contains (?geo, bif:st_point (0, 52)))
+ }
+GROUP BY ?c ?geo
+ORDER BY DESC 2;
+
+c callret-1
+ANY ANY
+________________________________________________________________________________
+ http://dbpedia.org/class/yago/Landmark108624891 12
+ http://www.w3.org/2002/07/owl#Thing 3
+ http://dbpedia.org/ontology/Place 3
+ http://dbpedia.org/ontology/PopulatedPlace 2
+ http://dbpedia.org/class/yago/TowersInTheNetherlands 2
+ http://dbpedia.org/class/yago/TowersInGermany 1
+ http://dbpedia.org/class/yago/HillsOfWarwickshire 1
+ http://dbpedia.org/class/yago/PrehistoricSitesInPembrokeshire 1
+ http://dbpedia.org/class/yago/HillsOfSomerset 1
+ http://dbpedia.org/class/yago/PeninsulasOfTheFalklandIslands 1
+ http://dbpedia.org/class/yago/HillsOfWiltshire 1
+ http://dbpedia.org/class/yago/HillsOfOxfordshire 1
+ http://dbpedia.org/class/yago/HillsOfGloucestershire 1
+ http://dbpedia.org/ontology/City 1
+ http://dbpedia.org/class/yago/HillsOfWorcestershire 1
+ http://dbpedia.org/class/yago/GuyedMasts 1
+ http://dbpedia.org/ontology/Building 1
+ http://dbpedia.org/class/yago/Cities,TownsAndVillagesInGelderland 1
+ http://dbpedia.org/ontology/Area 1
+ http://dbpedia.org/class/yago/FormerMunicipalitiesOfGelderland 1
+No. of rows in result: 20
+
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_st_contains">
+ <title>See Also</title>
+ <para><link linkend="sqlrefgeospatialqgr">Querying Geometric Relations</link></para>
+ <para><link linkend="fn_st_point"><function>st_point</function></link></para>
+ <para><link linkend="fn_st_x"><function>st_x</function></link></para>
+ <para><link linkend="fn_st_y"><function>st_y</function></link></para>
+ <para><link linkend="fn_st_distance"><function>st_distance</function></link></para>
+ <para><link linkend="fn_st_srid"><function>st_srid</function></link></para>
+ <para><link linkend="fn_st_setsrid"><function>st_setsrid</function></link></para>
+ <para><link linkend="fn_st_astext"><function>st_astext</function></link></para>
+ <para><link linkend="fn_st_geomfromtext"><function>st_geomfromtext</function></link></para>
+ <para><link linkend="fn_st_intersects"><function>st_intersects</function></link></para>
+ <para><link linkend="fn_st_within"><function>st_within</function></link></para>
+ <para><link linkend="fn_isgeometry"><function>isgeometry</function></link></para>
+ <para><link linkend="fn_geo_insert"><function>geo_insert</function></link></para>
+ <para><link linkend="fn_geo_delete"><function>geo_delete</function></link></para>
+ <para><link linkend="fn_rdf_geo_add"><function>DB.DBA.RDF_GEO_ADD</function></link></para>
+ <para><link linkend="fn_rdf_geo_fill"><function>DB.DBA.RDF_GEO_FILL</function></link></para>
+ </refsect1>
+</refentry>
View
93 docsrc/xmlsource/funcref/st_distance.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License along
+ - with this program; if not, write to the Free Software Foundation, Inc.,
+ - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
+<refentry id="fn_st_distance">
+ <refmeta>
+ <refentrytitle>st_distance</refentrytitle>
+ <refmiscinfo>geo</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>st_distance</refname>
+ <refpurpose>Returns the shortest distance between two points.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis id="fsyn_st_distance">
+ <funcprototype id="fproto_st_distance">
+ <funcdef><function>st_distance</function></funcdef>
+ <paramdef>in <parameter>g1</parameter> any</paramdef>
+ <paramdef>in <parameter>g2</parameter> any</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="desc_st_distance">
+ <title>Description</title>
+ <para>Returns the shortest distance between two points such that the first point is part of g1 and the
+second of g2. The srid of g1 and g2 must be the same. If the srid is 4326, the haversine function
+is used to compute a great circle distance in kilometers on Earth.
+Otherwise the distance is calculated as on a flat Euclidean plane.</para>
+ </refsect1>
+ <refsect1 id="params_st_distance">
+ <title>Parameters</title>
+ <refsect2><title>g1</title>
+ <para>Geometry.</para>
+ </refsect2>
+ <refsect2><title>g2</title>
+ <para>Geometry.</para>
+ </refsect2>
+ </refsect1>
+ <refsect1 id="ret_st_distance"><title>Return Types</title>
+ <para>Returns double precision.</para>
+ </refsect1>
+ <refsect1 id="examples_st_distance">
+ <title>Examples</title>
+ <example id="ex_st_distance"><title></title>
+ <para></para>
+<programlisting><![CDATA[
+SQL>SELECT st_distance (st_point(0, 52),st_point(0, 70));
+callret
+VARCHAR
+_____________________________
+ 2000.388915449352
+No. of rows in result: 1
+]]></programlisting>
+ </example>
+ </refsect1>
+ <refsect1 id="seealso_st_distance">
+ <title>See Also</title>
+ <para><link linkend="fn_st_point"><function>st_point</function></link></para>
+ <para><link linkend="fn_st_x"><function>st_x</function></link></para>
+ <para><link linkend="fn_st_y"><function>st_y</function></link></para>
+ <para><link linkend="fn_st_srid"><function>st_srid</function></link></para>
+ <para><link linkend="fn_st_setsrid"><function>st_setsrid</function></link></para>
+ <para><link linkend="fn_st_astext"><function>st_astext</function></link></para>
+ <para><link linkend="fn_st_geomfromtext"><function>st_geomfromtext</function></link></para>
+ <para><link linkend="fn_st_intersects"><function>st_intersects</function></link></para>
+ <para><link linkend="fn_st_contains"><function>st_contains</function></link></para>
+ <para><link linkend="fn_st_within"><function>st_within</function></link></para>
+ <para><link linkend="fn_isgeometry"><function>isgeometry</function></link></para>
+ <para><link linkend="fn_geo_insert"><function>geo_insert</function></link></para>
+ <para><link linkend="fn_geo_delete"><function>geo_delete</function></link></para>
+ <para><link linkend="fn_rdf_geo_add"><function>DB.DBA.RDF_GEO_ADD</function></link></para>
+ <para><link linkend="fn_rdf_geo_fill"><function>DB.DBA.RDF_GEO_FILL</function></link></para>
+ </refsect1>
+</refentry>
View
87 docsrc/xmlsource/funcref/st_geomfromtext.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ -
+ - This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ - project.
+ -
+ - Copyright (C) 1998-2014 OpenLink Software
+ -
+ - This project is free software; you can redistribute it and/or modify it
+ - under the terms of the GNU General Public License as published by the
+ - Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ - This program is distributed in the hope that it will be useful, but
+ - WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ - General Public License for more details.
+ -