Database Module

From BaseX Documentation
Revision as of 13:19, 10 January 2011 by CG (talk | contribs)
Jump to navigation Jump to search

This module contains methods 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.

db:system

Signatures
 db:system() as xs:string


Summary Lists information on the database system.
Rules This function returns a simple string with general information on the database system, such as the database path and current database settings.

db:list

Signatures
 db:list() as xs:string*


Summary Lists all databases.
Rules 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 Retrieves documents from a database.
Rules This function opens the documents of 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 Returns a specific database node.
Rules This function opens the database specified by $name and returns the node with the pre value specified by $pre.
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 Returns a specific database node.
Rules This function opens the database specified by $name and returns the node with the id value specified by $id.
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 node()


Summary Returns the pre values of database nodes.
Rules 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-pre

Signatures
 db:node-pre($nodes as node()*) as node()


Summary Returns the id values of database nodes.
Rules 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 Returns results from a text index request.
Rules This function accesses the text index and returns all text nodes that have $string as 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 Returns results from a attribute index request.
Rules This function accesses the attribute index and returns all attribute nodes that have $string as 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 Returns results from a full-text index request.
Rules 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 Returns database information.
Rules This function returns information on the database that is referenced by the current context item.
If $type is specified, the funnction 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.