Difference between revisions of "Database Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 5: Line 5:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:system</b>() as xs:string</code><br />
+
|<code><b>db:system</b>() as xs:string</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Lists information on the database system, including the database path and current database settings.<br />
+
|Lists information on the database system, including the database path and current database settings.
 
|}
 
|}
  
Line 15: Line 15:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:list</b>() as xs:string*</code><br />
+
|<code><b>db:list</b>() as xs:string*</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns an <code>xs:string</code> sequence with the names of all databases.<br />
+
|Returns an <code>xs:string</code> sequence with the names of all databases.
 
|}
 
|}
  
Line 25: Line 25:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:open</b>($name as xs:string) as document-node()*</code><br />
+
|<code><b>db:open</b>($name as xs:string) as document-node()*</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns a sequence with all document nodes contained in the database specified by <code>$name</code>. The name of the database may be extended by a collection path.<br />
+
|Returns a sequence with all document nodes contained in the database specified by <code>$name</code>. The name of the database may be extended by a collection path.
 +
|-
 +
| valign='top' | '''Errors'''
 +
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0003]]</b> is raised if the database is not found.
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
|The expression <code>db:open("docs")</code> returns all documents from the database named <code>docs</code>.<br />The expression <code>db:open("docs/one")</code> returns all documents from the database named <code>docs</code> in the subpath <code>one</code>.<br />
+
|
|-
+
* <code>db:open("docs")</code> returns all documents from the database named <code>docs</code>.
| valign='top' | '''Errors'''
+
* <code>db:open("docs/one")</code> returns all documents from the database named <code>docs</code> in the subpath <code>one</code>.
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0003]]</b> is raised if the database is not found.<br />
 
 
|}
 
|}
  
Line 41: Line 43:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:open-pre</b>($name as xs:string, $pre as xs:integer) as node()</code><br />
+
|<code><b>db:open-pre</b>($name as xs:string, $pre as xs:integer) as node()</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Opens the database specified by <code>$name</code> and returns the node with the specified <code>$pre</code> value.<br />
+
|Opens the database specified by <code>$name</code> and returns the node with the specified <code>$pre</code> value.
 +
|-
 +
| valign='top' | '''Errors'''
 +
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0004]]</b> is raised if the specified <code>$pre</code> value does not exist in the database.
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
|The expression <code>db:open-pre("docs", 0)</code> returns the first database node from the database named <code>docs</code>.<br />
+
|
|-
+
* <code>db:open-pre("docs", 0)</code> returns the first database node from the database named <code>docs</code>.
| valign='top' | '''Errors'''
 
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0004]]</b> is raised if the specified <code>$pre</code> value does not exist in the database.<br />
 
 
|}
 
|}
  
Line 57: Line 60:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:open-id</b>($name as xs:string, $id as xs:integer) as node()</code><br />
+
|<code><b>db:open-id</b>($name as xs:string, $id as xs:integer) as node()</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Opens the database specified by <code>$name</code> and returns the node with the specified <code>$id</code> value.<br />In contrast to the <i>pre</i> value, the <i>id</i> will remain valid after update operations.<br />
+
|Opens the database specified by <code>$name</code> and returns the node with the specified <code>$id</code> value.<br />In contrast to the <i>pre</i> value, the <i>id</i> will remain valid after update operations.
 
|-
 
|-
 
| valign='top' | '''Errors'''
 
| valign='top' | '''Errors'''
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0004]]</b> is raised if the specified <code>$id</code> does not exist in the database.<br />
+
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0004]]</b> is raised if the specified <code>$id</code> does not exist in the database.
 
|}
 
|}
  
Line 70: Line 73:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:node-pre</b>($nodes as node()*) as xs:integer*</code><br />
+
|<code><b>db:node-pre</b>($nodes as node()*) as xs:integer*</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns the <i>pre</i> values of all database nodes specified by <code>$nodes</code>. <i>pre</i> values are direct, internal pointers to database nodes, which might be changed by updates.<br />
+
|Returns the <i>pre</i> values of all database nodes specified by <code>$nodes</code>. <i>pre</i> values are direct, internal pointers to database nodes, which might be changed by updates.
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
|The expression <code>db:node-pre(doc("input"))</code> returns <code>0</code> if the database <code>input</code> contains a single document.<br />
+
|
 +
* <code>db:node-pre(doc("input"))</code> returns <code>0</code> if the database <code>input</code> contains a single document.
 
|}
 
|}
  
Line 83: Line 87:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:node-id</b>($nodes as node()*) as xs:integer*</code><br />
+
|<code><b>db:node-id</b>($nodes as node()*) as xs:integer*</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns the <i>id</i> values of all database nodes specified by <code>$nodes</code>. <i>id</i> values are pointers to database nodes, which are not changed by updates.<br />
+
|Returns the <i>id</i> values of all database nodes specified by <code>$nodes</code>. <i>id</i> values are pointers to database nodes, which are not changed by updates.
 
|}
 
|}
  
Line 93: Line 97:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:text</b>($string as item()) as text()*</code><br />
+
|<code><b>db:text</b>($string as item()) as text()*</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns all text nodes from the text index that have <code>$string</code> as their string value.<br />
+
|Returns all text nodes from the text index that have <code>$string</code> as their string value.
 +
|-
 +
| valign='top' | '''Errors'''
 +
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the index is not available.<br/><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
|The expression <code>db:text("QUERY")</code> returns all text nodes of the currently opened database that match the string <code>QUERY</code>.<br />The expression <code>db:open("DB")/db:text("QUERY")/..</code> returns the parents of all text nodes of the database <code>DB</code> that match the string <code>QUERY</code>.<br />
+
|
|-
+
* <code>db:text("QUERY")</code> returns all text nodes of the currently opened database that match the string <code>QUERY</code>.
| valign='top' | '''Errors'''
+
* <code>db:open("DB")/db:text("QUERY")/..</code> returns the parents of all text nodes of the database <code>DB</code> that match the string <code>QUERY</code>.
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the index is not available.<br /><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.<br />
 
 
|}
 
|}
  
Line 109: Line 115:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:attribute</b>($string as item()) as attribute()*</code><br /><code><b>db:attribute</b>($string as item(), $name as xs:string) as attribute()*</code><br />
+
|<code><b>db:attribute</b>($string as item()) as attribute()*</code><br/><code><b>db:attribute</b>($string as item(), $name as xs:string) as attribute()*</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns all attribute nodes from the attribute index that have <code>$string</code> as their string value.<br />If <code>$name</code> is specified, the resulting attribute nodes are filtered by their attribute name.<br />
+
|Returns all attribute nodes from the attribute index that have <code>$string</code> as their string value.<br />If <code>$name</code> is specified, the resulting attribute nodes are filtered by their attribute name.
 +
|-
 +
| valign='top' | '''Errors'''
 +
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the index is not available.<br/><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
|The expression <code>db:open("DB")/db:attribute("QUERY", "id")/..</code> returns the parents of all attribute nodes of the database <code>DB</code> that have <code>QUERY</code> as string value.<br />
+
|
|-
+
* <code>db:open("DB")/db:attribute("QUERY", "id")/..</code> returns the parents of all attribute nodes of the database <code>DB</code> that have <code>QUERY</code> as string value.
| valign='top' | '''Errors'''
 
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the index is not available.<br /><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.<br />
 
 
|}
 
|}
  
Line 125: Line 132:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:fulltext</b>($text as xs:string) as text()</code><br />
+
|<code><b>db:fulltext</b>($text as xs:string) as text()</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns all text nodes from the full-text index that contain the string <code>$text</code>. The index full-text options are used for searching, i.e., if the index terms were stemmed, the search string will be stemmed as well.<br />
+
|Returns all text nodes from the full-text index that contain the string <code>$text</code>. The index full-text options are used for searching, i.e., if the index terms were stemmed, the search string will be stemmed as well.
 +
|-
 +
| valign='top' | '''Errors'''
 +
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the index is not available.<br/><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
|The expression <code>db:fulltext("QUERY")</code> returns all text nodes of the currently opened database that contain the string <code>QUERY</code>.<br />
+
|
|-
+
* <code>db:fulltext("QUERY")</code> returns all text nodes of the currently opened database that contain the string <code>QUERY</code>.
| valign='top' | '''Errors'''
 
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the index is not available.<br /><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.<br />
 
 
|}
 
|}
  
Line 141: Line 149:
 
|-
 
|-
 
| valign='top' width='90' | '''Signatures'''
 
| valign='top' width='90' | '''Signatures'''
|<code><b>db:info</b>() as xs:string</code><br /><code><b>db:info</b>($type as xs:string) as xs:string</code><br />
+
|<code><b>db:info</b>() as xs:string</code><br/><code><b>db:info</b>($type as xs:string) as xs:string</code>
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns information on the database that is referenced by the current context item.<br />If <code>$type</code> is specified, the function returns information on a database index. It must be one of the values <code>TEXT</code>, <code>ATTRIBUTE</code>, <code>FULLTEXT</code>, <code>PATH</code>, <code>TAG</code>, or <code>ATTNAME</code>.<br />
+
|Returns information on the database that is referenced by the current context item.<br />If <code>$type</code> is specified, the function returns information on a database index. It must be one of the values <code>TEXT</code>, <code>ATTRIBUTE</code>, <code>FULLTEXT</code>, <code>PATH</code>, <code>TAG</code>, or <code>ATTNAME</code>.
 
|-
 
|-
 
| valign='top' | '''Errors'''
 
| valign='top' | '''Errors'''
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the specified index is not available.<br /><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.<br />
+
|<b>[[XQuery Errors#BaseX Errors (BASX)|BASX0001]]</b> is raised if the specified index is not available.<br/><b>[[XQuery Errors#BaseX Errors (BASX)|BASX0002]]</b> is raised if the context item does not represent a database node.
 
|}
 
|}
  
 
[[Category:XQuery]]
 
[[Category:XQuery]]

Revision as of 16:13, 23 April 2011

This module contains XQuery Functions to list and open databases, explicitly apply available index structures, or get information on the database structure. All functions are introduced with the db: prefix, which is linked to the http://www.basex.org/db namespace.

db:system

Signatures db:system() as xs:string
Summary Lists information on the database system, including the database path and current database settings.

db:list

Signatures db:list() as xs:string*
Summary Returns an xs:string sequence with the names of all databases.

db:open

Signatures db:open($name as xs:string) as document-node()*
Summary Returns a sequence with all document nodes contained in the database specified by $name. The name of the database may be extended by a collection path.
Errors BASX0003 is raised if the database is not found.
Examples
  • db:open("docs") returns all documents from the database named docs.
  • db:open("docs/one") returns all documents from the database named docs in the subpath one.

db:open-pre

Signatures db:open-pre($name as xs:string, $pre as xs:integer) as node()
Summary Opens the database specified by $name and returns the node with the specified $pre value.
Errors BASX0004 is raised if the specified $pre value does not exist in the database.
Examples
  • db:open-pre("docs", 0) returns the first database node from the database named docs.

db:open-id

Signatures db:open-id($name as xs:string, $id as xs:integer) as node()
Summary Opens the database specified by $name and returns the node with the specified $id value.
In contrast to the pre value, the id will remain valid after update operations.
Errors BASX0004 is raised if the specified $id does not exist in the database.

db:node-pre

Signatures db:node-pre($nodes as node()*) as xs:integer*
Summary Returns the pre values of all database nodes specified by $nodes. pre values are direct, internal pointers to database nodes, which might be changed by updates.
Examples
  • db:node-pre(doc("input")) returns 0 if the database input contains a single document.

db:node-id

Signatures db:node-id($nodes as node()*) as xs:integer*
Summary Returns the id values of all database nodes specified by $nodes. id values are pointers to database nodes, which are not changed by updates.

db:text

Signatures db:text($string as item()) as text()*
Summary Returns all text nodes from the text index that have $string as their string value.
Errors BASX0001 is raised if the index is not available.
BASX0002 is raised if the context item does not represent a database node.
Examples
  • db:text("QUERY") returns all text nodes of the currently opened database that match the string QUERY.
  • db:open("DB")/db:text("QUERY")/.. returns the parents of all text nodes of the database DB that match the string QUERY.

db:attribute

Signatures db:attribute($string as item()) as attribute()*
db:attribute($string as item(), $name as xs:string) as attribute()*
Summary Returns all attribute nodes from the attribute index that have $string as their string value.
If $name is specified, the resulting attribute nodes are filtered by their attribute name.
Errors BASX0001 is raised if the index is not available.
BASX0002 is raised if the context item does not represent a database node.
Examples
  • db:open("DB")/db:attribute("QUERY", "id")/.. returns the parents of all attribute nodes of the database DB that have QUERY as string value.

db:fulltext

Signatures db:fulltext($text as xs:string) as text()
Summary Returns all text nodes from the full-text index that contain the string $text. The index full-text options are used for searching, i.e., if the index terms were stemmed, the search string will be stemmed as well.
Errors BASX0001 is raised if the index is not available.
BASX0002 is raised if the context item does not represent a database node.
Examples
  • db:fulltext("QUERY") returns all text nodes of the currently opened database that contain the string QUERY.

db:info

Signatures db:info() as xs:string
db:info($type as xs:string) as xs:string
Summary Returns information on the database that is referenced by the current context item.
If $type is specified, the function returns information on a database index. It must be one of the values TEXT, ATTRIBUTE, FULLTEXT, PATH, TAG, or ATTNAME.
Errors BASX0001 is raised if the specified index is not available.
BASX0002 is raised if the context item does not represent a database node.