Changes

Jump to navigation Jump to search
1,198 bytes added ,  09:29, 29 July 2020
=Conventions=
All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/db</nowiki></code> namespace, which is statically bound to the {{Code|db}} prefix.<br/>All errors are assigned to the <code><nowiki>http://basex.org/errors</nowiki></code> namespace, which is statically bound to the {{Code|bxerr}} prefix.
==Database Nodes==
Database In BaseX, two internal representations exist for nodes are XML nodes which are either stored in a persistent database or part of a so-called ''database fragment''. All XML fragments can be converted to database fragments by e. g. applying the [[XQuery_Update#transform|transform]] expression on an XML fragment:
* XML fragments are generated by XQuery node constructors.* Database nodes are:** stored in a persistent database on disk;** nodes of a document that has been generated temporarily with {{Code|fn:doc}}, {{Code|fn:parse-xml}} and other functions;** result of a main-memory update operation. Some operations are restricted to database nodes, but you can convert XML fragments to database nodes by applying an empty [[XQuery_Update#update|update]] or [[XQuery_Update#transform|transform]] operation to a node. Two examples: * Retrieve the internal node id of an XML fragment: <pre classsyntaxhighlight lang="brushxquery">let $xml := <xml>hello world</xml> update {}return db:node-id($xml/text())</syntaxhighlight> * Puts a marker element around the result of a full-text request (see {{Function|Full-Text|ft:mark}} for more details): <syntaxhighlight lang="xquery">copy $c p := element <xml>hello { 'world' } </xml>modify () return ft:mark($cp[text() contains text 'word'], 'b')</presyntaxhighlight>
=General Functions=
|-
| '''Summary'''
|Returns general information on the database system, such as the database path current values of all global and current database settingslocal [[Options]]. The {{Command|INFO}} command returns similar output is similar to .|} ==db:option== {| width='100%'|-| width='120' | '''Signatures'''|{{Func|db:option|$name as xs:string|xs:string}}|-| '''Summary'''|Returns the current value (string, integer, boolean, map) of a global or local [[Commands#INFOOptions|INFOOption]] with the specified {{Code|$name}}. The {{Command|GET}} commandworks similar.|-| '''Errors'''|{{Error|option|#Errors}} the specified option is unknown.|-| '''Examples'''|* <code>db:option('dbpath')</code> returns the database path string.* <code>db:option('serializer')</code> returns a map with the current serialization parameters.* <code>declare option db:chop 'true'; db:option('chop')</code> returns {{Code|true}} (irrespective of the global value).
|}
|-
| '''Summary'''
|Returns meta information on the database {{Code|$db}}. The output is similar to the [[Commands#INFO DB{{Command|INFO DB]] }} command.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|}
==db:property==
 
{{Mark|Introduced with Version 8.6}}:
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|db:property|$db as xs:string, $property name as xs:string|xs:anyAtomicType}}
|-
| '''Summary'''
|Returns the value (string, boolean, integer) of a property with the specified {{Code|$propertyname}} of in the database {{Code|$db}}. The available properties are the ones returned by [[#db:info|db:info]].
|-
| '''Errors'''
|{{Error|BXDB0017property|XQuery Errors#BaseX Errors}} the specified property is unknown.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|-
| '''Examples'''
|
* {{Code|db:list-details("shop")}} returns the names plus additional info on all resources of a database named {{Code|shop}}.
|}
 
==db:dir==
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|db:dir|$db as xs:string, $path as xs:string|element()*}}
|-
| '''Summary'''
|Returns meta data on all directories and resources of the database {{Code|$db}} in the specified directory {{Code|$path}}. Two types of elements are returned:
* {{Code|resource}} represents a resource. The element value is the directory path; content type, modification date, raw flag (which indicates if the resource is binary or XML), and size of the resource are returned as attributes.
* {{Code|dir}} represents a directory. The element value is the directory path; the modification date is returned as attribute.
Please note that directories are not stored in BaseX. Instead, they result implicitly from the paths of stored resources.
|-
| '''Errors'''
|{{Error|open|#Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|path|#Errors}} the specified path is invalid.
|-
| '''Examples'''
|
* {{Code|db:dir('shop', 'books')}} returns all entries of the {{Code|books}} directory of a {{Code|shop}} database.
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:open-pre|$db as xs:string, $pre pres as xs:integer*|node()*}}
|-
| '''Summary'''
|Opens the database {{Code|$db}} and returns the node all distinct nodes with the specified pre values {{Code|$prepres}} valuein document order.<br/>The [[Node Storage#PRE Value|PRE value]] provides very fast access to an existing database node, but it will change whenever a node with a smaller ''pre'' values is added to or deleted from a database.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0009range|XQuery Errors#BaseX Errors}} the specified pre value does not exist in the database.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:open-id|$db as xs:string, $id ids as xs:integer*|node()*}}
|-
| '''Summary'''
|Opens the database {{Code|$db}} and returns the node all distinct nodes with the specified {{Code|$idids}} valuein document order.<br />Each database node has a ''persistent'' [[Node Storage#ID Value|ID value]]. Access to the node id can be sped up by turning on the {{Option|UPDINDEX}} option.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0009range|XQuery Errors#BaseX Errors}} the specified id value does not exist in the database.
|}
|-
| '''Summary'''
|Returns the ''pre'' values of the nodes supplied by specified {{Code|$nodes}}, which must all be [[#Database Nodes|database nodes]].<br/>The [[Node Storage#PRE Value|PRE value]] provides very fast access to an existing database node, but it will change whenever a node with a smaller ''pre'' values is added to or deleted from a database.
|-
| '''Errors'''
|{{Error|BXDB0001node|#Errors}} {{Code|$nodes}} contains a node which is not stored in a database.
|-
| '''Examples'''
|-
| '''Summary'''
|Returns the ''id'' values of the nodes supplied by specified {{Code|$nodes}}, which must all be [[#Database Nodes|database nodes]].<br/>Each database node has a ''persistent'' [[Node Storage#ID Value|ID value]]. Access to the node id can be sped up by turning on the {{Option|UPDINDEX}} option.
|-
| '''Errors'''
|{{Error|BXDB0001node|#Errors}} {{Code|$nodes}} contains a node which is not stored in a database.
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0003mainmem|#Errors}} the database is not ''persistent'' (stored on disk).<br/>{{Error|FODC0002|XQuery Errors#Functions Errors}} the addressed resource cannot be retrieved.<br/>{{Error|FODC0007|XQuery Errors#Functions Errors}} the specified path is invalid.
|-
| '''Examples'''
* {{Code|db:retrieve("DB", "music/01.mp3")}} returns the specified audio file as raw data.
* <code><nowiki>stream:materialize(db:retrieve("DB", "music/01.mp3"))</nowiki></code> materializes the streamable result in main-memory before returning it.
* <code><nowiki>convert:binary-to-string(db:retrieve("DB", "info.txt"), 'UTF-8')</nowiki></code> converts a binary database resource as UTF-8 text and returns a string.
|}
|-
| '''Summary'''
|Exports the specified database {{Code|$db}} to the specified file {{Code|$path}}. Existing files will be overwritten. <br />The {{Code|$params}} argument contains serialization parameters (see [[Serialization|serialization parameters]] for more details. As with [https://www.w3.org/TR/xpath-functions-31/#func-serialize fn:serialize()], which the parameters can either be specified<br />* either as children of an {{Code|&lt;output:serialization-parameters/&gt;}} element, as defined for the [http://www.w3.org/TR/xpath-functions-30/#func-serialize fn:serialize()] function; e.g.:<pre classsyntaxhighlight lang="brush:xml">
<output:serialization-parameters>
<output:method value='xml'/>
...
</output:serialization-parameters>
</presyntaxhighlight>* or as map, which contains all key/value pairs:<pre classsyntaxhighlight lang="brush:xmlxquery">
map { "method": "xml", "cdata-section-elements": "div", ... }
</presyntaxhighlight>
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|-
| '''Examples'''
| Export all files as text:<br/>
<pre classsyntaxhighlight lang="brush:xquery">
db:export("DB", "/home/john/xml/texts", map { 'method': 'text' })
</presyntaxhighlight>
The following query can be used to export parts of the database:
<pre classsyntaxhighlight lang="brush:xquery">
let $target := '/home/john/xml/target'
for $doc in db:open('DB', 'collection')
file:write($path, $doc)
)
</presyntaxhighlight>
|}
|-
| width='120' | '''Signatures'''
|{{Func|db:text|$db as xs:string, $strings as xs:string as item()*|text()*}}
|-
| '''Summary'''
|Returns all text nodes of the database {{Code|$db}} that have one of the specified {{Code|$stringstrings}} as their string value values and that are stored in the text index.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0004no-index|Database Module#Errors}} the index is not available.<br/>
|-
| '''Examples'''
|-
| '''Summary'''
|Returns all text nodes of the database {{Code|$db}} that whose values are located in between the {{Code|$min}} and {{Code|$max}} strings and that are stored in the text index.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0004no-index|Database Module#Errors}} the index is not available.<br/>
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:attribute|$db as xs:string, $strings as xs:string as item()*|attribute()*}}<br/>{{Func|db:attribute|$db as xs:string, $strings as xs:string as item()*, $name as xs:string|attribute()*}}
|-
| '''Summary'''
|Returns all attribute nodes of the database {{Code|$db}} that have one of the specified {{Code|$stringstrings}} as string value values and that are stored in the attribute index.<br />If {{Code|$name}} is specified, the resulting attribute nodes are filtered by their attribute name.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0004no-index|Database Module#Errors}} the index is not available.<br/>
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0004no-index|Database Module#Errors}} the index is not available.<br/>
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:token|$db as xs:string, $token tokens as item()xs:string*|attribute()*}}<br/>{{Func|db:token|$db as xs:string, $token tokens as item()xs:string*, $name as xs:string|attribute()*}}
|-
| '''Summary'''
|Returns all attribute nodes of the database {{Code|$db}}, the value values of which contains contain one of the specified {{Code|$tokentokens}}.<br />If {{Code|$name}} is specified, the resulting attribute nodes are filtered by their attribute name.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0004no-index|Database Module#Errors}} the index is not available.<br/>
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:create|$db as xs:string|empty-sequence()}}<br/>{{Func|db:create|$db as xs:string, $inputs as item()*|empty-sequence()}}<br/>{{Func|db:create|$db as xs:string, $inputs as item()*, $paths as xs:string*|empty-sequence()}}<br/>{{Func|db:create|$db as xs:string, $inputs as item()*, $paths as xs:string*, $options as map(*)?|empty-sequence()}}
|-
| '''Summary'''
|-
| '''Errors'''
|{{Error|FODC0002|XQuery Errors#Functions Errors}} an input points to an unknown resource.<br/>{{Error|FOUP0001|XQuery Errors#Update Errors}} an attribute was specified as input.<br/>{{Error|BXDB0007lock|#Errors}} a database is opened by another process.<br/>{{Error|BXDB0011name|#Errors}} the specified name is not a [[Commands#Valid_Names|valid database name]].<br/>{{Error|BXDB0012conflict|#Errors}} two {{Code|db:create}} statements with the same database name were specifiedwas addressed more than once.<br/>{{Error|BXDB0013args|#Errors}} the number of specified inputs and paths differs.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0007lock|#Errors}} a database is opened by another process.<br/>{{Error|conflict|#Errors}} the same database was addressed more than once.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:add|$db as xs:string, $input as item()|empty-sequence()}}<br/>{{Func|db:add|$db as xs:string, $input as item(), $path as xs:string?|empty-sequence()}}<br/>{{Func|db:add|$db as xs:string, $input as item(), $path as xs:string?, $options as map(*)?|empty-sequence()|empty-sequence()}}
|-
| '''Summary'''
|Adds documents specified by {{Code|$input}} to the database {{Code|$db}} with the specified {{Code|$path}}:
* A document with the same path may occur more than once in a database. If you want to enforce single instances, use [[#db:replace|db:replace]] instead.
* See [[#db:create|db:create]] for more details on the input argumentand path arguments.
* The parsing behavior can be controlled via {{Code|$options}}:
** allowed options are {{Option|ADDCACHE}} and the [[Options#Parsing|parsing]] and [[Options#XML Parsing|XML parsing]] options, all in lower case
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|FODC0002|XQuery Errors#Functions Errors}} the input points to an unknown resource.<br/>{{Error|FOUP0001|XQuery Errors#Update Errors}} an attribute was specified as input.
|-
| '''Examples'''
|
* {{Code|<code>db:add("DB", "/home/dir/doc.xml")}} </code> adds the file {{Code|/home/dir/doc.xml}} to the database {{Code|DB}}.* {{Code|<code>db:add("DB", <a/>, "doc.xml")}} </code> adds a document node to the database {{Code|DB}} under the name {{Code|doc.xml}}.* {{Code|<code>db:add("DB", "/home/dir", "docs/dir", map { 'addcache': true()}} )</code> adds all documents in {{Code|/home/dir}} to the database {{Code|DB}} under the path {{Code|docs/dir}}. In order to reduce memory consumption, the files will be cached before being added to the database.
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0008path|#Errors}} the specified path is invalid.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0011lock|XQuery #Errors}} a database is opened by another process.<br/>{{Error|name|#BaseX Errors}} invalid database name.<br/>{{Error|BXDB0016conflict|XQuery Errors#BaseX Errors}} name of source and target the same database is equalwas addressed more than once.
|}
|-
| width='120' | '''Signatures'''
|{{Func|db:alter|$db as xs:string, $newname name as xs:string|empty-sequence()}}
|-
| '''Summary'''
|Renames the database specified by {{Code|$db}} to {{Code|$newnamename}}.
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0011lock|XQuery #Errors}} a database is opened by another process.<br/>{{Error|name|#BaseX Errors}} invalid database name.<br/>{{Error|BXDB0016conflict|XQuery Errors#BaseX Errors}} name of source and target the same database is equalwas addressed more than once.
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0011name|XQuery Errors#BaseX Errors}} invalid database name.<br/>{{Error|conflict|#Errors}} the same database was addressed more than once.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002backup|XQuery Errors#BaseX Errors}} No backup file found.<br/>{{Error|BXDB0011name|XQuery Errors#BaseX Errors}} invalid database name.<br/>{{Error|conflict|#Errors}} the same database was addressed more than once.
|-
| '''Examples'''
* {{Code|db:drop-backup("DB")}} drops all backups of the database {{Code|DB}}.
* {{Code|db:drop-backup("DB-2014-03-13-17-36-44")}} drops the specific backup file {{Code|DB-2014-03-13-17-36-44.zip}} of the database {{Code|DB}}.
|}
 
==db:alter-backup==
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|db:alter-backup|$name as xs:string, $new-name as xs:string|empty-sequence()}}
|-
| '''Summary'''
|Renames all backups of the database with the specified {{Code|$name}} to {{Code|$new-name}}. The directory inside the archive will be renamed as well. If the given {{Code|$name}} points to a specific backup file, only this specific backup file will be renamed.
|-
| '''Errors'''
|{{Error|backup|#Errors}} No backup file found.<br/>{{Error|name|#Errors}} invalid database name.<br/>{{Error|conflict|#Errors}} the same database was addressed more than once.
|-
| '''Examples'''
|
* {{Code|db:alter-backup("DB", "DB2)}} renames all backups of the database {{Code|DB}} to {{Code|DB2}}.
|}
|-
| '''Errors'''
|{{Error|BXDB0011lock|XQuery #Errors}} a database is opened by another process.<br/>{{Error|name|#BaseX Errors}} invalid database name.<br/>{{Error|BXDB0015no-backup|XQuery Errors#BaseX Errors}} No backup found.<br/>{{Error|conflict|#Errors}} the same database was addressed more than once.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:optimize|$db as xs:string|empty-sequence()}}<br/>{{Func|db:optimize|$db as xs:string, $all as xs:boolean|empty-sequence()}}<br/>{{Func|db:optimize|$db as xs:string, $all as xs:boolean, $options as map(*)?|empty-sequence()}}
|-
| '''Summary'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|FOUP0002|XQuery Errors#Update Errors}} an error occurred while optimizing the database.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0008path|#Errors}} the specified source or target path, or one of its descendants, is invalid.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|db:replace|$db as xs:string, $path as xs:string, $input as item()|empty-sequence()}}<br/>{{Func|db:replace|$db as xs:string, $path as xs:string, $input as item(), $options as map(*)?|empty-sequence()|empty-sequence()}}
|-
| '''Summary'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0014target|#Errors}} the path points to a directory.<br/>{{Error|FODC0002|XQuery Errors#Functions Errors}} the input points to an unknown resource.<br/>{{Error|FOUP0001|XQuery Errors#Update Errors}} an attribute was specified as input.
|-
| '''Examples'''
* {{Code|db:replace("DB", "docs/dir/doc.xml", document { <a/> })}} replaces the content of the document {{Code|docs/dir/doc.xml}} in the database {{Code|DB}} with the specified document node.
The following query can be used to import files from a directory to a database:
<pre classsyntaxhighlight lang="brush:xquery">
let $source := '/home/john/xml/source'
for $file in file:list($source, true())
where not(file:is-dir($path))
return db:replace('db', $file, doc($path))
</presyntaxhighlight>
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|BXDB0003mainmem|#Errors}} the database is not ''persistent'' (stored on disk).<br/>{{Error|FODC0007|XQuery Errors#Functions Errors}} the specified path is invalid.<br/>{{Error|FOUP0002|XQuery Errors#Update Errors}} the resource cannot be stored at the specified location.
|-
| '''Examples'''
|
* {{Code|db:store("DB", "video/sample.mov", file:read-binary('video.mov'))}} stores the addressed video file at the specified location.
|}* With the following query, you can copy full directories:<syntaxhighlight lang="xquery">==let $db:output== {| width='100%db'|let $src-| widthpath :='120' | '''Signatures''src/'|{{Func|db:output|let $result as item()*|emptytrg-sequence()}}|-| '''Summary'path := 'trg/'|This function can be used to both perform updates and return results for $src in a single query. The argument of the function will be evaluated, and the resulting items will be cached and returned after the updates on the ''pending update db:list'' have been processed. As nodes may be updated($db, they will be copied before being cached.<br/>The function can only be used together with [[XQuery Update#Updating Expressions|updating expressions]]; if the function is called within a transform expression, its results will be discarded.|$src-path)| '''Examples'''|* {{Code|where db:outputis-raw("Prices have been deleted."$db, $src), delete node //price}} deletes all {{Code|price}} elements in a database and returns an info message.|} ==dblet $trg :output-cache== {| width='100%'|$trg-| width='120' | '''Signatures'''path |{{Func|db:outputsubstring-cache||itemafter($src, $src-path)*}}|-| '''Summary'''|Returns the items that have been cached by [[#return db:output|store($db, $trg, db:output]]. It can be used to check which items will eventually be returned as result of an updating function.retrieve($db, $src))<br/syntaxhighlight>This function is ''non-deterministic'': It will return different results before and after items have been cached. It is e. g. useful when writing [[Unit Module|unit tests]].
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|}
|-
| '''Errors'''
|{{Error|BXDB0001node|#Errors}} {{Code|$nodes}} contains a node which is not stored in a database.
|}
|-
| '''Errors'''
|{{Error|BXDB0001node|#Errors}} {{Code|$nodes}} contains a node which is not stored in a database.
|}
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|-
| '''Examples'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.
|-
| '''Summary'''
|-
| '''Errors'''
|{{Error|BXDB0002open|XQuery Errors#BaseX Errors}} the addressed database does not exist or could not be opened.<br/>{{Error|FODC0002|XQuery Errors#Functions Errors}} the addressed resource is not found or cannot be retrieved.
|-
| '''Examples'''
|Description
|-
|{{Code|BXDB0001args}}|The referenced XML node is no [[#Database Nodesnumber of specified inputs and paths differs.|-|database node]], i.e. it is neither stored in a database nor represented as database fragment{{Code|conflict}}|Multiple update operations point to the same target.
|-
|{{Code|BXDB0002lock}}|The addressed A database does not exist or could not cannot be updated because it is openedby another process.
|-
|{{Code|BXDB0003mainmem}}
|The addressed database is not ''persistent'' (stored on disk).
|-
|{{Code|BXDB0004name}}|The name of the specified database lacks an index structure required by the called functionis invalid.
|-
|{{Code|BXDB0005no-backup}}|A query is expected to exclusively return [[#Database Nodes|database nodes]] of No backup exists for a single database.
|-
|{{Code|BXDB0006node}}|A The referenced XML node is no [[#Database Nodes|database node]], i.e. it is neither stored in a database nor represented as database path addressed with {{Code|doc()}} contains more than one documentfragment.
|-
|{{Code|BXDB0007no-index}}|A The database cannot be updated because it is opened lacks an index structure required by another processthe called function.
|-
|{{Code|BXDB0008}}|The specified database path is invalid.|-|{{Code|BXDB0009open}}|The addressed database id does not exist or pre value is out of rangecould not be opened.
|-
|{{Code|BXDB0011option}}|The name of the specified database option is invalidunknown.
|-
|{{Code|BXDB0012path}}|A The specified database can only be created oncepath is invalid.
|-
|{{Code|BXDB0013property}}|The number of specified inputs and paths differsdatabase property is unknown.
|-
|{{Code|BXDB0014range}}|Path points to a directoryThe addressed database id or pre value is out of range.
|-
|{{Code|BXDB0015}}|No backup is found.|-|{{Code|BXDB0016target}}|Name of the source and Path points to an invalid target database is equal.|-|{{Code|BXDB0017}}|The specified property is unknown..
|}
=Changelog=
 
;Version 9.3
* Added: [[#db:alter-backup|db:alter-backup]]
* Updated: [[#db:open-id|db:open-id]], [[#db:open-pre|db:open-pre]]: support for multiple integers
 
;Version 9.2
* Added: [[#db:dir|db:dir]]
* Updated: [[#db:add|db:add]]: {{Code|$path}} allow empty path argument
 
;Version 9.0
* Added: [[#db:option|db:option]]
* Updated: db:output renamed to {{Function|Update|update:output}}, db:output-cache renamed to {{Function|Update|update:cache}}
* Updated: error codes updated; errors now use the module namespace
;Version 8.6
;Version 7.7
 
* Added: [[#db:export|db:export]], [[#db:name|db:name]], [[#db:path|db:path]]
* Updated: {{Code|$options}} argument added to [[#db:create|db:create]] and [[#db:optimize|db:optimize]].
;Version 7.6
 
* Updated: [[#db:create|db:create]]: allow more than one input and path.
;Version 7.5
 
* Updated: [[#db:add|db:add]]: input nodes will be automatically converted to document nodes
* Added: [[#db:backups|db:backups]]
;Version 7.3
 
* Added: [[#db:flush|db:flush]]
;Version 7.2.1
 
* Added: [[#db:text-range|db:text-range]], [[#db:attribute-range|db:attribute-range]], [[#db:output|db:output]]
;Version 7.1
 
* Added: [[#db:list-details|db:list-details]], [[#db:content-type|db:content-type]]
* Updated: [[#db:info|db:info]], [[#db:system|db:system]], [[#db:retrieve|db:retrieve]]
;Version 7.0
 
* Added: [[#db:retrieve|db:retrieve]], [[#db:store|db:store]], [[#db:exists|db:exists]], [[#db:is-raw|db:is-raw]], [[#db:is-xml|db:is-xml]]
* Updated: [[#db:list|db:list]], [[#db:open|db:open]], [[#db:add|db:add]]
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu