Difference between revisions of "Database Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 8: Line 8:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Lists information on the database system.
+
|This function lists information on the database system, including the database path and current database settings.<br />
|-
 
| valign='top' | '''Rules'''
 
|This function returns a simple string with general information on the database system, such as the database path and current database settings.<br />
 
 
|}
 
|}
  
Line 21: Line 18:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Lists all databases.
 
|-
 
| valign='top' | '''Rules'''
 
 
|This function returns a <code>xs:string</code> sequence with the names of all databases.<br />
 
|This function returns a <code>xs:string</code> sequence with the names of all databases.<br />
 
|}
 
|}
Line 31: 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><br />
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Retrieves documents from a database.
+
|This function 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 />
|-
 
| valign='top' | '''Rules'''
 
|This function opens the documents of the database specified by <code>$name</code>. The name of the database may be extended by a collection path.<br />
 
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
Line 53: Line 44:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns a specific database node.
+
|This function opens the database specified by <code>$name</code> and returns the node with the specified <code>$pre</code> value.<br />
|-
 
| valign='top' | '''Rules'''
 
|This function opens the database specified by <code>$name</code> and returns the node with the <i>pre</i> value specified by <code>$pre</code>.<br />
 
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
Line 72: Line 60:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns a specific database node.
+
|This function 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 />
|-
 
| valign='top' | '''Rules'''
 
|This function opens the database specified by <code>$name</code> and returns the node with the <i>id</i> value specified by <code>$id</code>.<br />In contrast to the <i>pre</i> value, the <i>id</i> will remain valid after update operations.<br />
 
 
|-
 
|-
 
| valign='top' | '''Errors'''
 
| valign='top' | '''Errors'''
Line 88: Line 73:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns the <code>pre</code> values of database nodes.
+
|This function 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 />
|-
 
| valign='top' | '''Rules'''
 
|This function returns the <code>pre</code> values of all database nodes specified by <code>$nodes</code>. <code>pre</code> values are direct, internal pointers to database nodes, which might be changed by updates.<br />
 
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
Line 104: Line 86:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns the <code>id</code> values of database nodes.
+
|This function 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 />
|-
 
| valign='top' | '''Rules'''
 
|This function returns the <code>id</code> values of all database nodes specified by <code>$nodes</code>. <code>id</code> values are pointers to database nodes, which are not changed by updates.<br />
 
 
|}
 
|}
  
Line 117: Line 96:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns results from a text index request.
+
|This function accesses the text index and returns all text nodes that have <code>$string</code> as their string value.<br />
|-
 
| valign='top' | '''Rules'''
 
|This function accesses the text index and returns all text nodes that have <code>$string</code> as string value.<br />
 
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
Line 136: Line 112:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns results from a attribute index request.
+
|This function accesses the attribute index and returns all attribute nodes 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 />
|-
 
| valign='top' | '''Rules'''
 
|This function accesses the attribute index and returns all attribute nodes that have <code>$string</code> as string value.<br />If <code>$name</code> is specified, the resulting attribute nodes are filtered by their attribute name.<br />
 
 
|-
 
|-
 
| valign='top' | '''Examples'''
 
| valign='top' | '''Examples'''
Line 155: Line 128:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns results from a full-text index request.
 
|-
 
| valign='top' | '''Rules'''
 
 
|This function accesses the full-text index and returns all text nodes 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 />
 
|This function accesses the full-text index and returns all text nodes 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 />
 
|-
 
|-
Line 174: Line 144:
 
|-
 
|-
 
| valign='top' | '''Summary'''
 
| valign='top' | '''Summary'''
|Returns database information.
+
|This function 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 />
|-
 
| valign='top' | '''Rules'''
 
|This function returns information on the database that is referenced by the current context item.<br />If <code>$type</code> is specified, the funnction 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 />
 
 
|-
 
|-
 
| valign='top' | '''Errors'''
 
| valign='top' | '''Errors'''

Revision as of 20:34, 22 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 This function lists information on the database system, including the database path and current database settings.

db:list

Signatures db:list() as xs:string*
Summary This function returns a xs:string sequence with the names of all databases.

db:open

Signatures db:open($name as xs:string) as document-node()*
Summary This function 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.
Examples The expression db:open("docs") returns all documents from the database named docs.
The expression db:open("docs/one") returns all documents from the database named docs in the subpath one.
Errors BASX0003 is raised if the database is not found.

db:open-pre

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

db:open-id

Signatures db:open-id($name as xs:string, $id as xs:integer) as node()
Summary This function 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 This function 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 The expression 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 This function 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 This function accesses the text index and returns all text nodes that have $string as their string value.
Examples The expression db:text("QUERY") returns all text nodes of the currently opened database that match the string QUERY.
The expression db:open("DB")/db:text("QUERY")/.. returns the parents of all text nodes of the database DB that match the string QUERY.
Errors BASX0001 is raised if the index is not available.
BASX0002 is raised if the context item does not represent a database node.

db:attribute

Signatures db:attribute($string as item()) as attribute()*
db:attribute($string as item(), $name as xs:string) as attribute()*
Summary This function accesses the attribute index and returns all attribute nodes that have $string as their string value.
If $name is specified, the resulting attribute nodes are filtered by their attribute name.
Examples The expression db:open("DB")/db:attribute("QUERY", "id")/.. returns the parents of all attribute nodes of the database DB that have QUERY as 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.

db:fulltext

Signatures db:fulltext($text as xs:string) as text()
Summary This function accesses the full-text index and returns all text nodes 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.
Examples The expression db:fulltext("QUERY") returns all text nodes of the currently opened database that contain the string QUERY.
Errors BASX0001 is raised if the index is not available.
BASX0002 is raised if the context item does not represent a database node.

db:info

Signatures db:info() as xs:string
db:info($type as xs:string) as xs:string
Summary This function 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.