Difference between revisions of "Commands"
m (Text replacement - "syntaxhighlight" to "pre") |
|||
(32 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
Lines starting with <code>#</code> are interpreted as comments and are skipped. With the following script, a database is created, two documents are added to it, and a query is performed: | Lines starting with <code>#</code> are interpreted as comments and are skipped. With the following script, a database is created, two documents are added to it, and a query is performed: | ||
− | < | + | <pre lang="xml"> |
CREATE DB test | CREATE DB test | ||
ADD TO embedded.xml <root>embedded</root> | ADD TO embedded.xml <root>embedded</root> | ||
Line 20: | Line 20: | ||
XQUERY <hits>{ count(//text()) }</hits> | XQUERY <hits>{ count(//text()) }</hits> | ||
CLOSE | CLOSE | ||
− | </ | + | </pre> |
===XML Syntax=== | ===XML Syntax=== | ||
Line 28: | Line 28: | ||
The XML syntax provides more flexibility here. Multiple commands can be enclosed by a {{Code|<commands/>}} root element. Some commands, such as {{Command|ADD}}, allow you to directly embed XML documents. If you want to embed XML in XQuery expressions, entities should be encoded, or the {{Code|CDATA}} syntax should be used: | The XML syntax provides more flexibility here. Multiple commands can be enclosed by a {{Code|<commands/>}} root element. Some commands, such as {{Command|ADD}}, allow you to directly embed XML documents. If you want to embed XML in XQuery expressions, entities should be encoded, or the {{Code|CDATA}} syntax should be used: | ||
− | < | + | <pre lang="xml"> |
<commands> | <commands> | ||
<create-db name='test'/> | <create-db name='test'/> | ||
Line 38: | Line 38: | ||
<close/> | <close/> | ||
</commands> | </commands> | ||
− | </ | + | </pre> |
==Glob Syntax== | ==Glob Syntax== | ||
Line 67: | Line 67: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|CREATE DB [name] ([input])}} | |{{Code|CREATE DB [name] ([input])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><create-db name='...'>([input])</create-db></code><br/> | |<code><create-db name='...'>([input])</create-db></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Creates a new database with the specified {{Code|name}} and, optionally, an initial {{Code|input}}, and opens it. An existing database will be overwritten.<br />The input can be a file or directory path to XML documents, a remote URL, or a string containing XML: | + | |Creates a new database with the specified {{Code|name}} and, optionally, an initial {{Code|input}}, and opens it. An existing database will be overwritten.<br/>The input can be a file or directory path to XML documents, a remote URL, or a string containing XML: |
* {{Code|name}} must be a [[#Valid Names|valid database name]] | * {{Code|name}} must be a [[#Valid Names|valid database name]] | ||
* database creation can be controlled by setting [[Options#Create Options|Create Options]] | * database creation can be controlled by setting [[Options#Create Options|Create Options]] | ||
If you need to add initial resources, it is always faster to supply them at creation time than adding them in a subsequent step via {{Command|ADD}}. | If you need to add initial resources, it is always faster to supply them at creation time than adding them in a subsequent step via {{Command|ADD}}. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if a database with the specified name is currently used by another process, if one of the documents to be added is not well-formed or if it cannot be parsed for some other reason. | |The command fails if a database with the specified name is currently used by another process, if one of the documents to be added is not well-formed or if it cannot be parsed for some other reason. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 96: | Line 96: | ||
==OPEN== | ==OPEN== | ||
− | |||
− | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|OPEN [name]}} | |{{Code|OPEN [name]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><open name='...'/></code> | |<code><open name='...'/></code> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Opens the database specified by {{Code|name}}. | |Opens the database specified by {{Code|name}}. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified database does not exist, is currently being updated by another process, or cannot be opened for some other reason. | |The command fails if the specified database does not exist, is currently being updated by another process, or cannot be opened for some other reason. | ||
Line 120: | Line 118: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|CHECK [input]}} | |{{Code|CHECK [input]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><check input='...'/></code><br/> | |<code><check input='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ/CREATE'' | |''READ/CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|This convenience command combines {{Command|OPEN}} and {{Command|CREATE DB}}: If a database with the name {{Code|input}} exists, and if there is no existing file or directory with the same name that has a newer timestamp, the database is opened. Otherwise, a new database is created; if the specified input points to an existing resource, it is stored as initial content. | |This convenience command combines {{Command|OPEN}} and {{Command|CREATE DB}}: If a database with the name {{Code|input}} exists, and if there is no existing file or directory with the same name that has a newer timestamp, the database is opened. Otherwise, a new database is created; if the specified input points to an existing resource, it is stored as initial content. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the addressed database could neither be opened nor created. | |The command fails if the addressed database could neither be opened nor created. | ||
Line 140: | Line 138: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|CLOSE }} | |{{Code|CLOSE }} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><close/></code><br/> | |<code><close/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Closes the currently opened database. | |Closes the currently opened database. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the database files could not be closed for some reason. | |The command fails if the database files could not be closed for some reason. | ||
Line 160: | Line 158: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|LIST ([name] ([path]))}} | |{{Code|LIST ([name] ([path]))}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><list (name='...' (path='...'))/></code><br/> | |<code><list (name='...' (path='...'))/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''NONE'' | |''NONE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Lists all available databases. If {{Code|name}} is specified, the resources of a database are listed. The output can be further restricted to the resources matching the specified {{Code|path}}.<br/>If database resources are listed, the size is either the number of nodes (for XML resources) or the number of bytes (for binary resources). | |Lists all available databases. If {{Code|name}} is specified, the resources of a database are listed. The output can be further restricted to the resources matching the specified {{Code|path}}.<br/>If database resources are listed, the size is either the number of nodes (for XML resources) or the number of bytes (for binary resources). | ||
− | + | |- valign="top" | |
− | |- | ||
| '''Errors''' | | '''Errors''' | ||
|The command fails if the optional database cannot be opened, or if the existing databases cannot be listed for some other reason. | |The command fails if the optional database cannot be opened, or if the existing databases cannot be listed for some other reason. | ||
+ | |} | ||
+ | |||
+ | ==DIR== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | |width='130'|'''Syntax''' | ||
+ | |{{Code|DIR ([path]))}} | ||
+ | |- valign="top" | ||
+ | | '''XML Syntax''' | ||
+ | |<code><dir (path='...')/></code><br/> | ||
+ | |- valign="top" | ||
+ | | '''Permission''' | ||
+ | |''READ'' | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Lists directories and resources of the currently opened database and the specified {{Code|path}}.<br/>If database resources are listed, the size is either the number of nodes (for XML resources) or the number of bytes (for binary resources). | ||
|} | |} | ||
Line 181: | Line 195: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|EXPORT [path]}} | |{{Code|EXPORT [path]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><export path='...'/></code><br/> | |<code><export path='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Exports all documents in the database to the specified file {{Code|path}}, using the serializer options specified by the {{Option|EXPORTER}} option. | |Exports all documents in the database to the specified file {{Code|path}}, using the serializer options specified by the {{Option|EXPORTER}} option. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, if the target path points to a file or is invalid, if the serialization parameters are invalid, or if the documents cannot be serialized for some other reason. | |The command fails if no database is opened, if the target path points to a file or is invalid, if the serialization parameters are invalid, or if the documents cannot be serialized for some other reason. | ||
Line 199: | Line 213: | ||
==CREATE INDEX== | ==CREATE INDEX== | ||
− | |||
− | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|CREATE INDEX [TEXT|ATTRIBUTE|TOKEN|FULLTEXT]}} | |{{Code|CREATE INDEX [TEXT|ATTRIBUTE|TOKEN|FULLTEXT]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><create-index type='text|attribute|token|fulltext'/></code><br/> | |<code><create-index type='text|attribute|token|fulltext'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Creates the specified [[Indexes#Value Indexes|Value Index]]. The current [[Options#Indexing|Index Options]] will be considered when creating the index. | |Creates the specified [[Indexes#Value Indexes|Value Index]]. The current [[Options#Indexing|Index Options]] will be considered when creating the index. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, if the specified index is unknown, or if indexing fails for some other reason. | |The command fails if no database is opened, if the specified index is unknown, or if indexing fails for some other reason. | ||
Line 223: | Line 235: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|DROP INDEX [TEXT|ATTRIBUTE|TOKEN|FULLTEXT]}} | |{{Code|DROP INDEX [TEXT|ATTRIBUTE|TOKEN|FULLTEXT]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><drop-index type='text|attribute|token|fulltext'/></code><br/> | |<code><drop-index type='text|attribute|token|fulltext'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Drops the specified [[Indexes#Value Indexes|Value Index]]. | |Drops the specified [[Indexes#Value Indexes|Value Index]]. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, if the specified index is unknown, or if it could not be deleted for some other reason. | |The command fails if no database is opened, if the specified index is unknown, or if it could not be deleted for some other reason. | ||
Line 243: | Line 255: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|ALTER DB [name] [newname]}} | |{{Code|ALTER DB [name] [newname]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><alter-db name='...' newname='...'/></code><br/> | |<code><alter-db name='...' newname='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Renames the database specified by {{Code|name}} to {{Code|newname}}. {{Code|newname}} must be a [[#Valid Names|valid database name]]. | |Renames the database specified by {{Code|name}} to {{Code|newname}}. {{Code|newname}} must be a [[#Valid Names|valid database name]]. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the source database does not exist or is currently locked, or if it could not be renamed for some other reason. | |The command fails if the source database does not exist or is currently locked, or if it could not be renamed for some other reason. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 267: | Line 279: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|DROP DB [name]}} | |{{Code|DROP DB [name]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><drop-db name='...'/></code><br/> | |<code><drop-db name='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Drops the database with the specified {{Code|name}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. | |Drops the database with the specified {{Code|name}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified database does not exist or is currently locked, or if the database could not be deleted for some other reason. | |The command fails if the specified database does not exist or is currently locked, or if the database could not be deleted for some other reason. | ||
Line 287: | Line 299: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|COPY [name] [newname]}} | |{{Code|COPY [name] [newname]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><copy name='...' newname='...'/></code><br/> | |<code><copy name='...' newname='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Creates a copy of the database specified by {{Code|name}}. {{Code|newname}} must be a [[#Valid Names|valid database name]]. | |Creates a copy of the database specified by {{Code|name}}. {{Code|newname}} must be a [[#Valid Names|valid database name]]. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the source database does not exist. | |The command fails if the source database does not exist. | ||
Line 307: | Line 319: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|INSPECT}} | |{{Code|INSPECT}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><inspect/></code> | |<code><inspect/></code> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Performs some integrity checks on the opened database and returns a brief summary. | |Performs some integrity checks on the opened database and returns a brief summary. | ||
Line 324: | Line 336: | ||
==CREATE BACKUP== | ==CREATE BACKUP== | ||
− | |||
− | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code|CREATE BACKUP [name] ([comment])}} | + | |{{Code|CREATE BACKUP ([name] ([comment]))}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code><create-backup name='...' (comment='...')/></code><br/> | + | |<code><create-backup (name='...') (comment='...')/></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Creates a | + | |Creates a backup of the database specified by {{Code|name}}, with an optional {{Code|comment}}. If no name is supplied, general data will be backed up. The backup file will be suffixed with the current timestamp and stored in the database directory. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. |
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified database does not exist, or if it could not be zipped for some other reason. | |The command fails if the specified database does not exist, or if it could not be zipped for some other reason. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 352: | Line 362: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code|DROP BACKUP [name]}} | + | |{{Code|DROP BACKUP ([name])}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code><drop-backup name='...'/></code><br/> | + | |<code><drop-backup (name='...')/></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Drops all backups of the database with the specified {{Code|name}}, or a specific backup file if the name ends with its timestamp. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. | + | |Drops all backups of the database with the specified {{Code|name}}, or a specific backup file if the name ends with its timestamp. If no name is supplied, backups with general data are addressed. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. |
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 374: | Line 384: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|ALTER BACKUP [name] [newname]}} | |{{Code|ALTER BACKUP [name] [newname]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><alter-backup name='...' newname='...'/></code><br/> | |<code><alter-backup name='...' newname='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Renames all backups of the database with the specified {{Code|name}} to {{Code|newname}}. If the name ends with a timestamp, only the specified backup file will be renamed. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. | |Renames all backups of the database with the specified {{Code|name}} to {{Code|newname}}. If the name ends with a timestamp, only the specified backup file will be renamed. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 392: | Line 402: | ||
|} | |} | ||
− | == | + | ==RESTORE== |
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code| | + | |{{Code|RESTORE ([name])}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code>< | + | |<code><restore (name='...')/></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | | | + | |Restores a database with the specified {{Code|name}}. The name may include the timestamp of the backup file. If no name is supplied, general data will be restored. If general data is restored, it will only be available after BaseX has been restarted. |
+ | |- valign="top" | ||
+ | | '''Errors''' | ||
+ | |The command fails if the specified backup does not exist, if the database to be restored is currently locked, or if it could not be restored for some other reason. | ||
|} | |} | ||
− | == | + | ==SHOW BACKUPS== |
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code| | + | |{{Code|SHOW BACKUPS}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code>< | + | |<code><show-backups/></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | | | + | |Shows all database backups. |
− | |||
− | |||
− | |||
|} | |} | ||
Line 434: | Line 444: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|XQUERY [query]}} | |{{Code|XQUERY [query]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><xquery>[query]</xquery></code><br/> | |<code><xquery>[query]</xquery></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''depends on query'' | |''depends on query'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Runs the specified {{Code|query}} and prints the result. | |Runs the specified {{Code|query}} and prints the result. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified query is invalid. | |The command fails if the specified query is invalid. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 457: | Line 467: | ||
|} | |} | ||
− | == | + | ==GET== |
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | |width='130'|'''Syntax''' | ||
+ | |{{Code|GET [path]}} | ||
+ | |- valign="top" | ||
+ | | '''XML Syntax''' | ||
+ | |<code><get path='...'/></code><br/> | ||
+ | |- valign="top" | ||
+ | | '''Permission''' | ||
+ | |''READ'' | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Retrieves an XML document from the opened database at the specified {{Code|path}}. | ||
+ | |- valign="top" | ||
+ | | '''Errors''' | ||
+ | |The command fails if no database is opened or if the source path is invalid. | ||
+ | |} | ||
+ | |||
+ | ==BINARY GET== | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code| | + | |{{Code|BINARY GET [path]}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code>< | + | |<code><binary-get path='...'/></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Retrieves a [[Binary Data| | + | |Retrieves a [[Binary Data|binary resource]] from the opened database at the specified {{Code|path}}. |
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |The command fails if no database is opened | + | |The command fails if no database is opened or if the source path is invalid. |
|} | |} | ||
Line 480: | Line 510: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|FIND [query]}} | |{{Code|FIND [query]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><find>[query]</find></code><br/> | |<code><find>[query]</find></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Builds and runs a query for the specified {{Code|query}} terms. Keywords can be enclosed in quotes to look for phrases. The following modifiers can be used to further limit search: | |Builds and runs a query for the specified {{Code|query}} terms. Keywords can be enclosed in quotes to look for phrases. The following modifiers can be used to further limit search: | ||
<code>=</code> looks for exact text nodes<br/><code>~</code> looks for approximate hits<br/><code>@=</code> looks for exact attribute values<br/><code>@</code> looks for attributes | <code>=</code> looks for exact text nodes<br/><code>~</code> looks for approximate hits<br/><code>@=</code> looks for exact attribute values<br/><code>@</code> looks for attributes | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened. | |The command fails if no database is opened. | ||
Line 501: | Line 531: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|TEST [path]}} | |{{Code|TEST [path]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><test path='...'/></code><br/> | |<code><test path='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Runs all [[Unit Module|XQUnit tests]] in the specified {{Code|path}}. The path can point to a single file or a directory.<br/>Unit testing can also be triggered via {{Code|-t}} on [[Command-Line Options#BaseX Standalone|command line]]. | |Runs all [[Unit Module|XQUnit tests]] in the specified {{Code|path}}. The path can point to a single file or a directory.<br/>Unit testing can also be triggered via {{Code|-t}} on [[Command-Line Options#BaseX Standalone|command line]]. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if at least one test fails. | |The command fails if at least one test fails. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 525: | Line 555: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|REPO INSTALL [path]}} | |{{Code|REPO INSTALL [path]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><repo-install path='...'/></code><br/> | |<code><repo-install path='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
| Installs the package with path {{Code|path}}. | | Installs the package with path {{Code|path}}. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
| The command fails in the following cases: | | The command fails in the following cases: | ||
Line 551: | Line 581: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|REPO LIST}} | |{{Code|REPO LIST}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><repo-list/></code><br/> | |<code><repo-list/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
| Lists all installed packages. | | Lists all installed packages. | ||
Line 568: | Line 598: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|REPO DELETE [name]}} | |{{Code|REPO DELETE [name]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><repo-delete name='...'/></code><br/> | |<code><repo-delete name='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''CREATE'' | |''CREATE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
| Deletes the specified package with the specified {{Code|name}}. What is called "name" can also be the id (which is the name followed by the version) or the directory of the package. | | Deletes the specified package with the specified {{Code|name}}. What is called "name" can also be the id (which is the name followed by the version) or the directory of the package. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
| The command fails if the package to be deleted is required by another package. | | The command fails if the package to be deleted is required by another package. | ||
Line 590: | Line 620: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|ADD (TO [path]) [input]}} | |{{Code|ADD (TO [path]) [input]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><add (path='...')>[input]</add></code><br/> | |<code><add (path='...')>[input]</add></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Adds a file, directory or XML string specified by {{Code|input}} to the currently opened database at the specified {{Code|path}}: | |Adds a file, directory or XML string specified by {{Code|input}} to the currently opened database at the specified {{Code|path}}: | ||
* {{Code|input}} may either be a single XML document, a directory, a remote URL or a plain XML string. | * {{Code|input}} may either be a single XML document, a directory, a remote URL or a plain XML string. | ||
− | * A document with the same path may occur than once in a database. If this is unwanted, the {{Command| | + | * A document with the same path may occur than once in a database. If this is unwanted, the {{Command|PUT}} command can be used. |
* If a file is too large to be added in one go, its data structures will be cached to disk first. Caching can be enforced by turning the {{Option|ADDCACHE}} option on. | * If a file is too large to be added in one go, its data structures will be cached to disk first. Caching can be enforced by turning the {{Option|ADDCACHE}} option on. | ||
If files are to be added to an empty database, it is usually faster to use the {{Command|CREATE DB}} command and specify the initial input as argument. | If files are to be added to an empty database, it is usually faster to use the {{Command|CREATE DB}} command and specify the initial input as argument. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, if one of the documents to be added is not well-formed, or if it could not be parsed for some other reason. | |The command fails if no database is opened, if one of the documents to be added is not well-formed, or if it could not be parsed for some other reason. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 620: | Line 650: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|DELETE [path]}} | |{{Code|DELETE [path]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><delete path='...'/></code><br/> | |<code><delete path='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Deletes all documents from the currently opened database that start with the specified {{Code|path}}. | |Deletes all documents from the currently opened database that start with the specified {{Code|path}}. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened. | |The command fails if no database is opened. | ||
Line 640: | Line 670: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|RENAME [path] [newpath]}} | |{{Code|RENAME [path] [newpath]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><rename path='...' newpath='...'/></code><br/> | |<code><rename path='...' newpath='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Renames all document paths in the currently opened database that start with the specified {{Code|path}}. The command may be used to either rename single documents or directories. | |Renames all document paths in the currently opened database that start with the specified {{Code|path}}. The command may be used to either rename single documents or directories. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, or if the target path is empty. | |The command fails if no database is opened, or if the target path is empty. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 662: | Line 692: | ||
|} | |} | ||
− | == | + | ==PUT== |
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code| | + | |{{Code|PUT [path] [input]}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code>< | + | |<code><put path='...'>[input]</put></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | | | + | |Adds or replaces resources in the currently opened database, addressed by {{Code|path}}, with the file, directory or XML string specified by {{Code|input}}. |
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened or if the specified path is invalid. | |The command fails if no database is opened or if the specified path is invalid. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code| | + | * {{Code|PUT one.xml input.xml}}<br/>replaces {{Code|one.xml}} with the contents of the file {{Code|input.xml}}. |
− | * {{Code| | + | * {{Code|PUT top.xml <xml/>}}<br/>replaces {{Code|top.xml}} with the XML document {{Code|<xml/>}}. |
|} | |} | ||
− | == | + | ==BINARY PUT== |
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
− | |{{Code| | + | |{{Code|BINARY PUT (TO [path]) [input]}} |
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
− | |<code>< | + | |<code><binary-put (path='...')>[input]</store></code><br/> |
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Stores a [[Binary Data| | + | |Stores a [[Binary Data|binary resource]] specified via {{Code|input}} in the opened database to the specified {{Code|path}}: |
* The input may either be a file reference, a remote URL, or a plain string. | * The input may either be a file reference, a remote URL, or a plain string. | ||
* If the path denotes a directory, it needs to be suffixed with a slash ({{Code|/}}). | * If the path denotes a directory, it needs to be suffixed with a slash ({{Code|/}}). | ||
* An existing resource will be replaced. | * An existing resource will be replaced. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, if the specified resource is not found, if the target path is invalid or if the data cannot not be written for some other reason. | |The command fails if no database is opened, if the specified resource is not found, if the target path is invalid or if the data cannot not be written for some other reason. | ||
Line 713: | Line 743: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|OPTIMIZE (ALL)}} | |{{Code|OPTIMIZE (ALL)}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><optimize/></code><br/><code><optimize-all/></code><br/> | |<code><optimize/></code><br/><code><optimize-all/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Optimizes the index structures, | + | |Optimizes the index structures, metadata and statistics of the currently opened database: |
* If {{Code|ALL}} is specified, all database structures are completely reconstructed. The database size will be reduced, and all orphaned data will be deleted. | * If {{Code|ALL}} is specified, all database structures are completely reconstructed. The database size will be reduced, and all orphaned data will be deleted. | ||
* Without {{Code|ALL}}, only the outdated index structures and database statistics will be updated. If the database is completely up-to-date, nothing will be done. | * Without {{Code|ALL}}, only the outdated index structures and database statistics will be updated. If the database is completely up-to-date, nothing will be done. | ||
* Database options will be adopted from the original database. Only {{Option|AUTOOPTIMIZE}} and (if {{Code|ALL}} is specified) {{Option|UPDINDEX}} will be adopted from the current options. | * Database options will be adopted from the original database. Only {{Option|AUTOOPTIMIZE}} and (if {{Code|ALL}} is specified) {{Option|UPDINDEX}} will be adopted from the current options. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, or if the currently opened database is a main-memory instance. | |The command fails if no database is opened, or if the currently opened database is a main-memory instance. | ||
Line 736: | Line 766: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|FLUSH}} | |{{Code|FLUSH}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><flush/></code><br/> | |<code><flush/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''WRITE'' | |''WRITE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Explicitly flushes the buffers of the currently opened database to disk. This command is applied if {{Option|AUTOFLUSH}} has been set to {{Code|false}}. | |Explicitly flushes the buffers of the currently opened database to disk. This command is applied if {{Option|AUTOFLUSH}} has been set to {{Code|false}}. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened. | |The command fails if no database is opened. | ||
Line 758: | Line 788: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|CREATE USER [name] ([password])}} | |{{Code|CREATE USER [name] ([password])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><create-user name='...'>([password])</create-user></code><br/> | |<code><create-user name='...'>([password])</create-user></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Creates a user with the specified {{Code|name}} and {{Code|password}}. If no password is specified, it is requested via the chosen frontend (GUI or bash). | |Creates a user with the specified {{Code|name}} and {{Code|password}}. If no password is specified, it is requested via the chosen frontend (GUI or bash). | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified user already exists. | |The command fails if the specified user already exists. | ||
Line 778: | Line 808: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|ALTER USER [name] ([newname])}} | |{{Code|ALTER USER [name] ([newname])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><alter-user name='...' newname='...'/></code><br/> | |<code><alter-user name='...' newname='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Renames the user with the specified {{Code|name}} to {{Code|newname}}. | |Renames the user with the specified {{Code|name}} to {{Code|newname}}. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified user does not exist, or if the new user already exists. | |The command fails if the specified user does not exist, or if the new user already exists. | ||
Line 798: | Line 828: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|ALTER PASSWORD [name] ([password])}} | |{{Code|ALTER PASSWORD [name] ([password])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><alter-password name='...'>([password])</alter-password></code><br/> | |<code><alter-password name='...'>([password])</alter-password></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Alters the {{Code|password}} of the user with the specified {{Code|name}}. If no password is specified, it is requested via the chosen frontend (GUI or bash). | |Alters the {{Code|password}} of the user with the specified {{Code|name}}. If no password is specified, it is requested via the chosen frontend (GUI or bash). | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified user does not exist. | |The command fails if the specified user does not exist. | ||
Line 818: | Line 848: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|DROP USER [name] (ON [pattern])}}: | |{{Code|DROP USER [name] (ON [pattern])}}: | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><drop-user name='...' (pattern='...')/></code><br/> | |<code><drop-user name='...' (pattern='...')/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Drops the user with the specified {{Code|name}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database or user. If a glob {{Code|pattern}} is specified, only the assigned database pattern will be removed. | |Drops the user with the specified {{Code|name}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one database or user. If a glob {{Code|pattern}} is specified, only the assigned database pattern will be removed. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |The command fails if {{Code|admin}} is specified as | + | |The command fails if {{Code|admin}} is specified as username, or if the specified user does not exist or is currently logged in. |
|} | |} | ||
Line 838: | Line 868: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|GRANT [NONE|READ|WRITE|CREATE|ADMIN] (ON [pattern]) TO [user]}} | |{{Code|GRANT [NONE|READ|WRITE|CREATE|ADMIN] (ON [pattern]) TO [user]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><grant name='...' permission='none|read|write|create|admin' (pattern='...')/></code><br/> | |<code><grant name='...' permission='none|read|write|create|admin' (pattern='...')/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Grants the specified [[User_Management|permission]] to the specified {{Code|user}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one user. If a glob {{Code|pattern}} is specified, the permission will be applied to all databases that match this pattern. | |Grants the specified [[User_Management|permission]] to the specified {{Code|user}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one user. If a glob {{Code|pattern}} is specified, the permission will be applied to all databases that match this pattern. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |The command fails if {{Code|admin}} is specified as | + | |The command fails if {{Code|admin}} is specified as username or if the specified user does not exist. |
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 863: | Line 893: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|PASSWORD ([password])}} | |{{Code|PASSWORD ([password])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><password>([password])</password></code><br/> | |<code><password>([password])</password></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''NONE'' | |''NONE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Changes the {{Code|password}} of the current user. If | + | |Changes the {{Code|password}} of the current user. If the command is run on command-line or in the GUI, the password can be omitted and entered interactively. |
|} | |} | ||
=Administration= | =Administration= | ||
+ | |||
+ | ==SHOW OPTIONS== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | |width='130'|'''Syntax''' | ||
+ | |{{Code|SHOW OPTIONS [name]}} | ||
+ | |- valign="top" | ||
+ | | '''XML Syntax''' | ||
+ | |<code><show-options (name='...')/></code><br/> | ||
+ | |- valign="top" | ||
+ | | '''Permission''' | ||
+ | |''NONE'' | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Returns the current values of all [[Options]], or a single option with the specified {{Code|name}}. Global options can only be requested by users with ADMIN permissions. | ||
+ | |- valign="top" | ||
+ | | '''Errors''' | ||
+ | |The command fails if the specified option is unknown. | ||
+ | |} | ||
==SHOW SESSIONS== | ==SHOW SESSIONS== | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|SHOW SESSIONS}} | |{{Code|SHOW SESSIONS}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><show-sessions/></code><br/> | |<code><show-sessions/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Shows all sessions that are connected to the current server instance. | |Shows all sessions that are connected to the current server instance. | ||
Line 899: | Line 949: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|SHOW USERS (ON [database])}} | |{{Code|SHOW USERS (ON [database])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><show-users (database='...')/></code><br/> | |<code><show-users (database='...')/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Shows all users that are visible to the current user. If a {{Code|database}} is specified, only those users will be shown for which a pattern was specified that matches the database name. | |Shows all users that are visible to the current user. If a {{Code|database}} is specified, only those users will be shown for which a pattern was specified that matches the database name. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the optional database could not be opened. | |The command fails if the optional database could not be opened. | ||
Line 919: | Line 969: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|KILL [target]}} | |{{Code|KILL [target]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><kill target='...'/></code><br/> | |<code><kill target='...'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''ADMIN'' | |''ADMIN'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Kills sessions of a user or an IP:port combination, specified by {{Code|target}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one user. | |Kills sessions of a user or an IP:port combination, specified by {{Code|target}}. The [[#Glob Syntax|Glob Syntax]] can be used to address more than one user. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if a user tried to kill his/her own session. | |The command fails if a user tried to kill his/her own session. | ||
Line 939: | Line 989: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|INFO DB}} | |{{Code|INFO DB}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><info-db/></code><br/> | |<code><info-db/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Shows general information and | + | |Shows general information and metadata on the currently opened database. |
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened. | |The command fails if no database is opened. | ||
Line 959: | Line 1,009: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|INFO INDEX ([ELEMNAME|ATTRNAME|PATH|TEXT|ATTRIBUTE|TOKEN|FULLTEXT])}} | |{{Code|INFO INDEX ([ELEMNAME|ATTRNAME|PATH|TEXT|ATTRIBUTE|TOKEN|FULLTEXT])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><info-index type='elemname|attrname|path|text|attribute|token|fulltext'/></code><br/> | |<code><info-index type='elemname|attrname|path|text|attribute|token|fulltext'/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Shows information on the existing [[Indexes|index]] structures. The output can be optionally limited to the specified index. | |Shows information on the existing [[Indexes|index]] structures. The output can be optionally limited to the specified index. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, or if the specified index is unknown. | |The command fails if no database is opened, or if the specified index is unknown. | ||
Line 979: | Line 1,029: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|INFO STORAGE [start end]}} | |{{Code|INFO STORAGE [start end]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><info-storage (start='...') (end='...')/></code><br/> | |<code><info-storage (start='...') (end='...')/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Shows the internal main table of the currently opened database. An integer range may be specified as argument. | |Shows the internal main table of the currently opened database. An integer range may be specified as argument. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if no database is opened, or if one of the specified arguments is invalid. | |The command fails if no database is opened, or if one of the specified arguments is invalid. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Line 1,057: | Line 1,051: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|RUN [file]}} | |{{Code|RUN [file]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><run file='...'/></code> | |<code><run file='...'/></code> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''depends on input'' | |''depends on input'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Evaluates the contents of {{Code|file}} as XQuery expression. If the file ends with the suffix {{Code|.bxs}}, the file contents will be evaluated as [[#Basics|command script]]. This command can be used to run several commands in a row, with no other transaction intervening the execution. | |Evaluates the contents of {{Code|file}} as XQuery expression. If the file ends with the suffix {{Code|.bxs}}, the file contents will be evaluated as [[#Basics|command script]]. This command can be used to run several commands in a row, with no other transaction intervening the execution. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified file does not exist, or if the retrieved input is invalid. It will be canceled as soon as one of the executed commands fails. | |The command fails if the specified file does not exist, or if the retrieved input is invalid. It will be canceled as soon as one of the executed commands fails. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 1,082: | Line 1,076: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|EXECUTE [input]}} | |{{Code|EXECUTE [input]}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><execute>[input]</execute></code> | |<code><execute>[input]</execute></code> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''depends on input'' | |''depends on input'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Evaluates the specified {{Code|input}} as [[#Basics|command script]]. This command can be used to run several commands in a row, with no other transaction intervening the execution. | |Evaluates the specified {{Code|input}} as [[#Basics|command script]]. This command can be used to run several commands in a row, with no other transaction intervening the execution. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the syntax of the specified input is invalid. It will be canceled as soon as one of the executed commands fails. | |The command fails if the syntax of the specified input is invalid. It will be canceled as soon as one of the executed commands fails. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
* <code>EXECUTE "<commands><create-db name='db1'/><create-db name='db2'/></commands>"</code><br/>Two databases will be created in a single transaction. | * <code>EXECUTE "<commands><create-db name='db1'/><create-db name='db2'/></commands>"</code><br/>Two databases will be created in a single transaction. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Line 1,126: | Line 1,100: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|SET [option] ([value])}} | |{{Code|SET [option] ([value])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><set option='...'>([value])</set></code><br/> | |<code><set option='...'>([value])</set></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''NONE'' | |''NONE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Sets the [[Options|Option]] specified by {{Code|option}} to a new {{Code|value}}. Only local options can be modified. If no value is specified, and if the value is boolean, it will be inverted. | |Sets the [[Options|Option]] specified by {{Code|option}} to a new {{Code|value}}. Only local options can be modified. If no value is specified, and if the value is boolean, it will be inverted. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified option is unknown or if the specified value is invalid. | |The command fails if the specified option is unknown or if the specified value is invalid. | ||
Line 1,146: | Line 1,120: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|INFO}} | |{{Code|INFO}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><info/></code><br/> | |<code><info/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''READ'' | |''READ'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Shows global information. | |Shows global information. | ||
Line 1,163: | Line 1,137: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|HELP ([command])}} | |{{Code|HELP ([command])}} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><help>([command])</help></code><br/> | |<code><help>([command])</help></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''NONE'' | |''NONE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|If {{Code|command}} is specified, information on the specific command is printed; otherwise, all commands are listed. | |If {{Code|command}} is specified, information on the specific command is printed; otherwise, all commands are listed. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|The command fails if the specified command is unknown. | |The command fails if the specified command is unknown. | ||
Line 1,183: | Line 1,157: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|EXIT }} | |{{Code|EXIT }} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><exit/></code><br/> | |<code><exit/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''NONE'' | |''NONE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Exits the console mode. | |Exits the console mode. | ||
Line 1,200: | Line 1,174: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
|width='130'|'''Syntax''' | |width='130'|'''Syntax''' | ||
|{{Code|QUIT }} | |{{Code|QUIT }} | ||
− | |- | + | |- valign="top" |
| '''XML Syntax''' | | '''XML Syntax''' | ||
|<code><quit/></code><br/> | |<code><quit/></code><br/> | ||
− | |- | + | |- valign="top" |
| '''Permission''' | | '''Permission''' | ||
|''NONE'' | |''NONE'' | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Exits the console mode (alias of {{Command|EXIT}}). | |Exits the console mode (alias of {{Command|EXIT}}). | ||
Line 1,217: | Line 1,191: | ||
;Version 10 | ;Version 10 | ||
+ | * Added: [[#Backups|Backups]]: Support for general data ([[User Management|registered users]], [[Job Module#Services|scheduled services]] and [[Store Module|key-value stores]]). | ||
+ | * Added: {{Command|DIR}}, {{Command|GET}} | ||
+ | * Updated: {{Command|SHOW OPTIONS}}: Renamed (before: {{Code|GET}}). | ||
+ | * Updated: {{Command|BINARY GET}}: Renamed (before: {{Code|RETRIEVE}}). | ||
+ | * Updated: {{Command|BINARY PUT}}: Renamed (before: {{Code|STORE}}). | ||
+ | * Updated: {{Command|PUT}}: Renamed (before: {{Code|REPLACE}}). | ||
* Updated: {{Command|CREATE BACKUP}}: Support for comments. | * Updated: {{Command|CREATE BACKUP}}: Support for comments. | ||
* Updated: {{Command|OPEN}}: {{Code|path}} argument dropped. | * Updated: {{Command|OPEN}}: {{Code|path}} argument dropped. | ||
+ | * Removed: {{Code|JOBS LIST}}, {{Code|JOBS RESULT}}, {{Code|JOBS STOP}} | ||
;Version 9.7 | ;Version 9.7 | ||
Line 1,267: | Line 1,248: | ||
;Version 7.2.1 | ;Version 7.2.1 | ||
− | * Updated: permissions for {{ | + | * Updated: permissions for {{Code|GET}} and {{Command|SET}} changed from {{Code|READ}} to {{Code|NONE}}. |
;Version 7.2 | ;Version 7.2 | ||
Line 1,277: | Line 1,258: | ||
;Version 7.0 | ;Version 7.0 | ||
− | * Added: {{Command|FLUSH}}, {{ | + | * Added: {{Command|FLUSH}}, {{Code|RETRIEVE}}, {{Code|STORE}}. |
* Updated: {{Command|ADD}}: simplified arguments. | * Updated: {{Command|ADD}}: simplified arguments. |
Latest revision as of 17:39, 1 December 2023
This article is part of the Getting Started Section. It lists all database commands supported by BaseX.
Commands can be executed from the Command Line, as part of Scripts, via the Clients, REST, the input field in the GUI, and other ways. If the GUI is used, all commands that are triggered by the GUI itself will show up in the Info View. The Permission fields indicate which rights are required by a user to perform a command in the client/server architecture.
Contents
Basics[edit]
Command Scripts[edit]
On command line, multiple commands can be written down in a single line (separated by semicolons). You can also put them into a command script: Database commands in both string and XML syntax can be placed in a text file and stored as file with the BaseX command script suffix .bxs
. If the path to a script file is passed on to BaseX on command-line, or if it is opened in the GUI editor, it will be recognized and evaluated as such.
String Syntax[edit]
Lines starting with #
are interpreted as comments and are skipped. With the following script, a database is created, two documents are added to it, and a query is performed:
CREATE DB test
ADD TO embedded.xml <root>embedded</root>
# run query
XQUERY <hits>{ count(//text()) }</hits>
CLOSE
XML Syntax[edit]
The string syntax is limited when XML snippets need to be embedded in a command, or when complex queries are to be specified.
The XML syntax provides more flexibility here. Multiple commands can be enclosed by a <commands/>
root element. Some commands, such as ADD
, allow you to directly embed XML documents. If you want to embed XML in XQuery expressions, entities should be encoded, or the CDATA
syntax should be used:
<commands>
<create-db name='test'/>
<add path='embedded.xml'><root>embedded</root></add>
<!-- run query -->
<xquery><![CDATA[
<hits>{ count(//text()) }</hits>
]]></xquery>
<close/>
</commands>
Glob Syntax[edit]
Some commands support the glob syntax to address more than one database or user. Question marks and asterisks can be used to match one or more characters, and commas can be used to separate multiple patterns. Some examples:
AB?
addresses all names with the charactersAB
and one more character.*AB
addresses all names ending with the charactersAB
.X*,Y*,Z*
addresses all names starting with the charactersX
,Y
, orZ
.
Valid Names[edit]
Names of databases and users follow the same constraints: Names must at least have one printable character, including letters, numbers, and any of the special characters !#$%&'()+-=@[]^_`{}~
. The following characters are disallowed:
,?*
: glob syntax;
: Separator for multiple database commands on the command line\/
: Directory path separators:"<>|
: invalid filename characters on Windows- Names starting or ending with
.
: hidden folders (e.g. the .logs directory)
Aliases[edit]
In all commands, the DB
keyword can be replaced by DATABASE
.
Database Operations[edit]
CREATE DB[edit]
Syntax | CREATE DB [name] ([input])
|
XML Syntax | <create-db name='...'>([input])</create-db> |
Permission | CREATE |
Summary | Creates a new database with the specified name and, optionally, an initial input , and opens it. An existing database will be overwritten.The input can be a file or directory path to XML documents, a remote URL, or a string containing XML:
If you need to add initial resources, it is always faster to supply them at creation time than adding them in a subsequent step via |
Errors | The command fails if a database with the specified name is currently used by another process, if one of the documents to be added is not well-formed or if it cannot be parsed for some other reason. |
Examples |
|
OPEN[edit]
Syntax | OPEN [name]
|
XML Syntax | <open name='...'/>
|
Permission | READ |
Summary | Opens the database specified by name .
|
Errors | The command fails if the specified database does not exist, is currently being updated by another process, or cannot be opened for some other reason. |
CHECK[edit]
Syntax | CHECK [input]
|
XML Syntax | <check input='...'/> |
Permission | READ/CREATE |
Summary | This convenience command combines OPEN and CREATE DB : If a database with the name input exists, and if there is no existing file or directory with the same name that has a newer timestamp, the database is opened. Otherwise, a new database is created; if the specified input points to an existing resource, it is stored as initial content.
|
Errors | The command fails if the addressed database could neither be opened nor created. |
CLOSE[edit]
Syntax | CLOSE
|
XML Syntax | <close/> |
Permission | READ |
Summary | Closes the currently opened database. |
Errors | The command fails if the database files could not be closed for some reason. |
LIST[edit]
Syntax | LIST ([name] ([path]))
|
XML Syntax | <list (name='...' (path='...'))/> |
Permission | NONE |
Summary | Lists all available databases. If name is specified, the resources of a database are listed. The output can be further restricted to the resources matching the specified path .If database resources are listed, the size is either the number of nodes (for XML resources) or the number of bytes (for binary resources). |
Errors | The command fails if the optional database cannot be opened, or if the existing databases cannot be listed for some other reason. |
DIR[edit]
Syntax | DIR ([path]))
|
XML Syntax | <dir (path='...')/> |
Permission | READ |
Summary | Lists directories and resources of the currently opened database and the specified path .If database resources are listed, the size is either the number of nodes (for XML resources) or the number of bytes (for binary resources). |
EXPORT[edit]
Syntax | EXPORT [path]
|
XML Syntax | <export path='...'/> |
Permission | CREATE |
Summary | Exports all documents in the database to the specified file path , using the serializer options specified by the EXPORTER option.
|
Errors | The command fails if no database is opened, if the target path points to a file or is invalid, if the serialization parameters are invalid, or if the documents cannot be serialized for some other reason. |
CREATE INDEX[edit]
Syntax | CREATE INDEX [TEXT|ATTRIBUTE|TOKEN|FULLTEXT]
|
XML Syntax | <create-index type='text|attribute|token|fulltext'/> |
Permission | WRITE |
Summary | Creates the specified Value Index. The current Index Options will be considered when creating the index. |
Errors | The command fails if no database is opened, if the specified index is unknown, or if indexing fails for some other reason. |
DROP INDEX[edit]
Syntax | DROP INDEX [TEXT|ATTRIBUTE|TOKEN|FULLTEXT]
|
XML Syntax | <drop-index type='text|attribute|token|fulltext'/> |
Permission | WRITE |
Summary | Drops the specified Value Index. |
Errors | The command fails if no database is opened, if the specified index is unknown, or if it could not be deleted for some other reason. |
ALTER DB[edit]
Syntax | ALTER DB [name] [newname]
|
XML Syntax | <alter-db name='...' newname='...'/> |
Permission | CREATE |
Summary | Renames the database specified by name to newname . newname must be a valid database name.
|
Errors | The command fails if the source database does not exist or is currently locked, or if it could not be renamed for some other reason. |
Examples |
|
DROP DB[edit]
Syntax | DROP DB [name]
|
XML Syntax | <drop-db name='...'/> |
Permission | CREATE |
Summary | Drops the database with the specified name . The Glob Syntax can be used to address more than one database.
|
Errors | The command fails if the specified database does not exist or is currently locked, or if the database could not be deleted for some other reason. |
COPY[edit]
Syntax | COPY [name] [newname]
|
XML Syntax | <copy name='...' newname='...'/> |
Permission | CREATE |
Summary | Creates a copy of the database specified by name . newname must be a valid database name.
|
Errors | The command fails if the source database does not exist. |
INSPECT[edit]
Syntax | INSPECT
|
XML Syntax | <inspect/>
|
Permission | READ |
Summary | Performs some integrity checks on the opened database and returns a brief summary. |
Backups[edit]
CREATE BACKUP[edit]
Syntax | CREATE BACKUP ([name] ([comment]))
|
XML Syntax | <create-backup (name='...') (comment='...')/> |
Permission | CREATE |
Summary | Creates a backup of the database specified by name , with an optional comment . If no name is supplied, general data will be backed up. The backup file will be suffixed with the current timestamp and stored in the database directory. The Glob Syntax can be used to address more than one database.
|
Errors | The command fails if the specified database does not exist, or if it could not be zipped for some other reason. |
Examples |
|
DROP BACKUP[edit]
Syntax | DROP BACKUP ([name])
|
XML Syntax | <drop-backup (name='...')/> |
Permission | CREATE |
Summary | Drops all backups of the database with the specified name , or a specific backup file if the name ends with its timestamp. If no name is supplied, backups with general data are addressed. The Glob Syntax can be used to address more than one database.
|
Examples |
|
ALTER BACKUP[edit]
Syntax | ALTER BACKUP [name] [newname]
|
XML Syntax | <alter-backup name='...' newname='...'/> |
Permission | CREATE |
Summary | Renames all backups of the database with the specified name to newname . If the name ends with a timestamp, only the specified backup file will be renamed. The Glob Syntax can be used to address more than one database.
|
Examples |
|
RESTORE[edit]
Syntax | RESTORE ([name])
|
XML Syntax | <restore (name='...')/> |
Permission | CREATE |
Summary | Restores a database with the specified name . The name may include the timestamp of the backup file. If no name is supplied, general data will be restored. If general data is restored, it will only be available after BaseX has been restarted.
|
Errors | The command fails if the specified backup does not exist, if the database to be restored is currently locked, or if it could not be restored for some other reason. |
SHOW BACKUPS[edit]
Syntax | SHOW BACKUPS
|
XML Syntax | <show-backups/> |
Permission | CREATE |
Summary | Shows all database backups. |
Querying[edit]
XQUERY[edit]
Syntax | XQUERY [query]
|
XML Syntax | <xquery>[query]</xquery> |
Permission | depends on query |
Summary | Runs the specified query and prints the result.
|
Errors | The command fails if the specified query is invalid. |
Examples |
|
GET[edit]
Syntax | GET [path]
|
XML Syntax | <get path='...'/> |
Permission | READ |
Summary | Retrieves an XML document from the opened database at the specified path .
|
Errors | The command fails if no database is opened or if the source path is invalid. |
BINARY GET[edit]
Syntax | BINARY GET [path]
|
XML Syntax | <binary-get path='...'/> |
Permission | READ |
Summary | Retrieves a binary resource from the opened database at the specified path .
|
Errors | The command fails if no database is opened or if the source path is invalid. |
FIND[edit]
Syntax | FIND [query]
|
XML Syntax | <find>[query]</find> |
Permission | READ |
Summary | Builds and runs a query for the specified query terms. Keywords can be enclosed in quotes to look for phrases. The following modifiers can be used to further limit search:
|
Errors | The command fails if no database is opened. |
TEST[edit]
Syntax | TEST [path]
|
XML Syntax | <test path='...'/> |
Permission | ADMIN |
Summary | Runs all XQUnit tests in the specified path . The path can point to a single file or a directory.Unit testing can also be triggered via -t on command line.
|
Errors | The command fails if at least one test fails. |
Examples |
|
REPO INSTALL[edit]
Syntax | REPO INSTALL [path]
|
XML Syntax | <repo-install path='...'/> |
Permission | CREATE |
Summary | Installs the package with path path .
|
Errors | The command fails in the following cases:
|
REPO LIST[edit]
Syntax | REPO LIST
|
XML Syntax | <repo-list/> |
Permission | READ |
Summary | Lists all installed packages. |
REPO DELETE[edit]
Syntax | REPO DELETE [name]
|
XML Syntax | <repo-delete name='...'/> |
Permission | CREATE |
Summary | Deletes the specified package with the specified name . What is called "name" can also be the id (which is the name followed by the version) or the directory of the package.
|
Errors | The command fails if the package to be deleted is required by another package. |
Updates[edit]
ADD[edit]
Syntax | ADD (TO [path]) [input]
|
XML Syntax | <add (path='...')>[input]</add> |
Permission | WRITE |
Summary | Adds a file, directory or XML string specified by input to the currently opened database at the specified path :
If files are to be added to an empty database, it is usually faster to use the |
Errors | The command fails if no database is opened, if one of the documents to be added is not well-formed, or if it could not be parsed for some other reason. |
Examples |
|
DELETE[edit]
Syntax | DELETE [path]
|
XML Syntax | <delete path='...'/> |
Permission | WRITE |
Summary | Deletes all documents from the currently opened database that start with the specified path .
|
Errors | The command fails if no database is opened. |
RENAME[edit]
Syntax | RENAME [path] [newpath]
|
XML Syntax | <rename path='...' newpath='...'/> |
Permission | WRITE |
Summary | Renames all document paths in the currently opened database that start with the specified path . The command may be used to either rename single documents or directories.
|
Errors | The command fails if no database is opened, or if the target path is empty. |
Examples |
|
PUT[edit]
Syntax | PUT [path] [input]
|
XML Syntax | <put path='...'>[input]</put> |
Permission | WRITE |
Summary | Adds or replaces resources in the currently opened database, addressed by path , with the file, directory or XML string specified by input .
|
Errors | The command fails if no database is opened or if the specified path is invalid. |
Examples |
|
BINARY PUT[edit]
Syntax | BINARY PUT (TO [path]) [input]
|
XML Syntax | <binary-put (path='...')>[input]</store> |
Permission | WRITE |
Summary | Stores a binary resource specified via input in the opened database to the specified path :
|
Errors | The command fails if no database is opened, if the specified resource is not found, if the target path is invalid or if the data cannot not be written for some other reason. |
OPTIMIZE[edit]
Syntax | OPTIMIZE (ALL)
|
XML Syntax | <optimize/> <optimize-all/> |
Permission | WRITE |
Summary | Optimizes the index structures, metadata and statistics of the currently opened database:
|
Errors | The command fails if no database is opened, or if the currently opened database is a main-memory instance. |
FLUSH[edit]
Syntax | FLUSH
|
XML Syntax | <flush/> |
Permission | WRITE |
Summary | Explicitly flushes the buffers of the currently opened database to disk. This command is applied if AUTOFLUSH has been set to false .
|
Errors | The command fails if no database is opened. |
User Management[edit]
CREATE USER[edit]
Syntax | CREATE USER [name] ([password])
|
XML Syntax | <create-user name='...'>([password])</create-user> |
Permission | ADMIN |
Summary | Creates a user with the specified name and password . If no password is specified, it is requested via the chosen frontend (GUI or bash).
|
Errors | The command fails if the specified user already exists. |
ALTER USER[edit]
Syntax | ALTER USER [name] ([newname])
|
XML Syntax | <alter-user name='...' newname='...'/> |
Permission | ADMIN |
Summary | Renames the user with the specified name to newname .
|
Errors | The command fails if the specified user does not exist, or if the new user already exists. |
ALTER PASSWORD[edit]
Syntax | ALTER PASSWORD [name] ([password])
|
XML Syntax | <alter-password name='...'>([password])</alter-password> |
Permission | ADMIN |
Summary | Alters the password of the user with the specified name . If no password is specified, it is requested via the chosen frontend (GUI or bash).
|
Errors | The command fails if the specified user does not exist. |
DROP USER[edit]
Syntax | DROP USER [name] (ON [pattern]) :
|
XML Syntax | <drop-user name='...' (pattern='...')/> |
Permission | ADMIN |
Summary | Drops the user with the specified name . The Glob Syntax can be used to address more than one database or user. If a glob pattern is specified, only the assigned database pattern will be removed.
|
Errors | The command fails if admin is specified as username, or if the specified user does not exist or is currently logged in.
|
GRANT[edit]
Syntax | GRANT [NONE|READ|WRITE|CREATE|ADMIN] (ON [pattern]) TO [user]
|
XML Syntax | <grant name='...' permission='none|read|write|create|admin' (pattern='...')/> |
Permission | ADMIN |
Summary | Grants the specified permission to the specified user . The Glob Syntax can be used to address more than one user. If a glob pattern is specified, the permission will be applied to all databases that match this pattern.
|
Errors | The command fails if admin is specified as username or if the specified user does not exist.
|
Examples |
|
PASSWORD[edit]
Syntax | PASSWORD ([password])
|
XML Syntax | <password>([password])</password> |
Permission | NONE |
Summary | Changes the password of the current user. If the command is run on command-line or in the GUI, the password can be omitted and entered interactively.
|
Administration[edit]
SHOW OPTIONS[edit]
Syntax | SHOW OPTIONS [name]
|
XML Syntax | <show-options (name='...')/> |
Permission | NONE |
Summary | Returns the current values of all Options, or a single option with the specified name . Global options can only be requested by users with ADMIN permissions.
|
Errors | The command fails if the specified option is unknown. |
SHOW SESSIONS[edit]
Syntax | SHOW SESSIONS
|
XML Syntax | <show-sessions/> |
Permission | ADMIN |
Summary | Shows all sessions that are connected to the current server instance. |
SHOW USERS[edit]
Syntax | SHOW USERS (ON [database])
|
XML Syntax | <show-users (database='...')/> |
Permission | ADMIN |
Summary | Shows all users that are visible to the current user. If a database is specified, only those users will be shown for which a pattern was specified that matches the database name.
|
Errors | The command fails if the optional database could not be opened. |
KILL[edit]
Syntax | KILL [target]
|
XML Syntax | <kill target='...'/> |
Permission | ADMIN |
Summary | Kills sessions of a user or an IP:port combination, specified by target . The Glob Syntax can be used to address more than one user.
|
Errors | The command fails if a user tried to kill his/her own session. |
INFO DB[edit]
Syntax | INFO DB
|
XML Syntax | <info-db/> |
Permission | READ |
Summary | Shows general information and metadata on the currently opened database. |
Errors | The command fails if no database is opened. |
INFO INDEX[edit]
Syntax | INFO INDEX ([ELEMNAME|ATTRNAME|PATH|TEXT|ATTRIBUTE|TOKEN|FULLTEXT])
|
XML Syntax | <info-index type='elemname|attrname|path|text|attribute|token|fulltext'/> |
Permission | READ |
Summary | Shows information on the existing index structures. The output can be optionally limited to the specified index. |
Errors | The command fails if no database is opened, or if the specified index is unknown. |
INFO STORAGE[edit]
Syntax | INFO STORAGE [start end]
|
XML Syntax | <info-storage (start='...') (end='...')/> |
Permission | READ |
Summary | Shows the internal main table of the currently opened database. An integer range may be specified as argument. |
Errors | The command fails if no database is opened, or if one of the specified arguments is invalid. |
General Commands[edit]
RUN[edit]
Syntax | RUN [file]
|
XML Syntax | <run file='...'/>
|
Permission | depends on input |
Summary | Evaluates the contents of file as XQuery expression. If the file ends with the suffix .bxs , the file contents will be evaluated as command script. This command can be used to run several commands in a row, with no other transaction intervening the execution.
|
Errors | The command fails if the specified file does not exist, or if the retrieved input is invalid. It will be canceled as soon as one of the executed commands fails. |
Examples |
|
EXECUTE[edit]
Syntax | EXECUTE [input]
|
XML Syntax | <execute>[input]</execute>
|
Permission | depends on input |
Summary | Evaluates the specified input as command script. This command can be used to run several commands in a row, with no other transaction intervening the execution.
|
Errors | The command fails if the syntax of the specified input is invalid. It will be canceled as soon as one of the executed commands fails. |
Examples |
|
SET[edit]
Syntax | SET [option] ([value])
|
XML Syntax | <set option='...'>([value])</set> |
Permission | NONE |
Summary | Sets the Option specified by option to a new value . Only local options can be modified. If no value is specified, and if the value is boolean, it will be inverted.
|
Errors | The command fails if the specified option is unknown or if the specified value is invalid. |
INFO[edit]
Syntax | INFO
|
XML Syntax | <info/> |
Permission | READ |
Summary | Shows global information. |
HELP[edit]
Syntax | HELP ([command])
|
XML Syntax | <help>([command])</help> |
Permission | NONE |
Summary | If command is specified, information on the specific command is printed; otherwise, all commands are listed.
|
Errors | The command fails if the specified command is unknown. |
EXIT[edit]
Syntax | EXIT
|
XML Syntax | <exit/> |
Permission | NONE |
Summary | Exits the console mode. |
QUIT[edit]
Syntax | QUIT
|
XML Syntax | <quit/> |
Permission | NONE |
Summary | Exits the console mode (alias of EXIT ).
|
Changelog[edit]
- Version 10
- Added: Backups: Support for general data (registered users, scheduled services and key-value stores).
- Added:
DIR
,GET
- Updated:
SHOW OPTIONS
: Renamed (before:GET
). - Updated:
BINARY GET
: Renamed (before:RETRIEVE
). - Updated:
BINARY PUT
: Renamed (before:STORE
). - Updated:
PUT
: Renamed (before:REPLACE
). - Updated:
CREATE BACKUP
: Support for comments. - Updated:
OPEN
:path
argument dropped. - Removed:
JOBS LIST
,JOBS RESULT
,JOBS STOP
- Version 9.7
- Version 9.3
- Added:
ALTER BACKUP
- Version 8.6
- Updated:
SHOW USERS
: If called by non-admins, will only return the current user
- Version 8.5
- Added:
JOBS LIST
,JOBS RESULT
,JOBS STOP
- Updated: Valid Names: allow dots (except as first and last character)
- Version 8.4
- Updated:
CREATE INDEX
,DROP INDEX
,INFO INDEX
: token index added - Updated:
INFO STORAGE
: Query argument removed, start/end added to XML syntax. - Updated:
INFO INDEX
: Token index added; indexTAG
renamed toELEMNAME
; indexATTNAME
renamed toATTRNAME
- Updated:
OPTIMIZE
: adopt original index options
- Version 8.2
- Removed:
CREATE EVENT
,DROP EVENT
andSHOW EVENTS
command
- Version 8.0
- Updated: commands for User Management
- Updated:
OPEN
: path argument added - Removed:
CS
command - Added:
QUIT
- Version 7.9
- Added:
TEST
runs XQUnit tests.
- Version 7.7
- Updated: syntax of valid names.
- Version 7.5
- Added:
EXECUTE
executes a command script. - Added:
INSPECT
performs integrity checks. - Added: automatic detection of Command Scripts.
- Removed:
SHOW DATABASES
; information is also returned bySHOW SESSIONS
. - Removed:
OPEN
: path argument.
- Version 7.3
- Added: XML Syntax added.
- Updated:
CHECK
can now be used to create empty databases. - Updated: Names and paths in
OPEN
andLIST
are now specified as separate arguments.
- Version 7.2.1
- Updated: permissions for
GET
andSET
changed fromREAD
toNONE
.
- Version 7.2
- Updated:
CREATE INDEX
,DROP INDEX
(PATH
argument removed. Path summary is always available now and updated withOPTIMIZE
). - Updated: permissions for
REPO DELETE
,REPO INSTALL
andREPO LIST
.
- Version 7.1
- Updated:
KILL
(killing sessions by specifying IP:port)
- Version 7.0