English
Deutsch

Changelogs

BaseX 7.9, 27.06.2014

XQUNIT
- Unit testing has been improved a lot. All test functions will now be
evaluated separately; this way, updates can be performed within test.
- with the new TEST command, all test modules in a specified directory
can be evaluated.
- tests can be invoked from within the GUI editor and project view.
- on command-line, the -t flag can be used for the same purpose.

RESTXQ
- Custom HTTP methods can be defined via %rest:method
- Error handling has been improved and aligned with try/catch

REST
- The "run" operation allows execution of server-side command scripts

DATABASE MODULE
- parsing options added to db:create, db:add and db:replace

BaseX 7.8.2, 04.04.2014

GUI
- Ctrl-U: efficiently sort large texts
- Ctrl-H, Ctrl-J: context-sensitive behavior
- tweaked code automatisms

STORAGE, UPDATES
- faster processing of documents with namespaces

XQUERY MODULES
- Database Module: alter, copy, create-backup, drop-backup, restore
- Admin Module: new merge option, existing functions revised
- XQuery Module: new evaluation options (memory, timeout, permissions)

XQUERY OPTIMIZATIONS
- always show full stack trace (enforce it with INLINELIMIT=0)
- show stack trace again
- better error messages
- improved function inlining
- prevent pre-evaluation of try/catch
- Easter egg: partial sums (little Gauss) calculation

API
- WebDAV: improved password processing
- Client/Server: reduce waiting time if password is wrong

BaseX 7.8.1, 26.02.2014

ADDED
* Editor, Ctrl-H: filter by opened file type and selected text
* XML Parsing: support for TAR & TGZ

UPDATED
* XQuery errors: function not found -> suggest similar one
* Commands: improved parsing (allow more whitespaces)
* French translation (thanks to Maud Ingarao!)

FIXED
* XQuery Update: nested transform expressions
* XQuery: always return boolean when calling doc-available()
* XQuery: disallow impossible casts before removing variables
* Binary Module: iterative evaluation of bin:octets()
* Commands, REPO INSTALL: install packages in same directory
* CSV/JSON: serialization of underscores

BaseX 7.8, 12.02.2014

GUI
- new project view for organizing and opening project files
- realtime search of project files and contents
- various new editor shortcuts and code completions, code formatting

UPDATES
- improved performance of delete and insert operations
- faster in-place value updates
- 'update': convenience keyword for transform expressions

XQUERY OPTIMIZATIONS
- XQuery functions are now inlined and further optimized
- closure optimizations, better static typing
- improved detection and rewriting of tail calls
- faster processing of (sub)sequences

XQUERY MODULES
- JSON and CSV Module: updated and enhanced conversion rules
- Unit Module: enhanced test report output
- Map Module: map:serialize added; syntax aligned with latest spec.
- File Module: aligned with changes in EXPath spec.
- XQuery Module: xquery:evaluate (operates on opened databases)
- Full-Text Module: ft:contains added, ft:search: more options
- EXPath Binary Module added
- Java modules: support for locking annotations

API
- New options: INLINELIMIT, TAILCALLS, DEFAULTDB, RUNQUERY
- New command-line flag: -R only parse query
- Russian translation added (thanks to Oleksandr Shpak!)
- Spanish translation added (thanks to Carlos Marcos!)

BaseX 7.7.2, 07.10.2013

XQUERY
- CSV Module and serialization added
- JSON serializer updated (more to follow)
- update checks in modify clause fixed
- parsing of new map syntax fixed (ignoring spaces)
- tail call handling in built-in higher order functions fixed

API
- Russian translation added (thanks to Oleksandr Shpak, Max Shamaev)
- command-line arguments starting with '<' are interpreted as XQuery

INDEXING
- bug fixed in updatable index structure

BaseX 7.7.1, 16.09.2013

XQUERY
- new map syntax: { 'key' : 'value' }
- tail call optimization for dynamic functions
- optimize fn:subsequence() calls and sequence casts
- db:optimize(): original options are preserved

WEBDAV
- return non-breakable spaces as  

CORE
- avoid OutOfMemory exception when building large databases

BaseX 7.7, 07.08.2013

XQUERY
- Support for XQuery 3.0 is now finalized!
- the Unit Module allows standardized testing of XQuery applications
- the Streaming Module speeds up operations on large files
- the Inspection Module provides reflection and documentation features
- we have added support for XQuery collations
- we have extended the Database, Archive, File and other Modules

WEB/HTTP SERVICES
- WebDAV has been enriched with locking features (sponsored feature!)
- RESTXQ has been improved and extended

CORE
- improved database locking, including the use of custom lock strings
- database names have got more flexible
- we have new options for simplifying the creation of large databases

BaseX 7.6, 05.02.2013

DATABASE LOCKING:
- updates on different databases can now be executed in parallel and
won't lock your read-only queries anymore:
http://docs.basex.org/wiki/Transaction_Management

XQUERY:
- when errors are raised, the full stack trace is now returned
- the EXPath Geo Module, Fetch Module and HTML Module have been added:
http://docs.basex.org/wiki/Module_Library
- the Validation, XSLT, Database and Profiling Module have been updated

GUI:
- error messages are now clickable and linked with the text editor
- trace/profiling output is redirected to the info view in realtime

BaseX 7.5, 21.12.2012

XQUERY UPDATE
- bulk updates are now much faster than before
- insert and replace operations take much less memory
- databases can now be created via XQuery and db:create()

GUI TEXT EDITOR
- a fast and flexible search/replace panel has been added
- error highlighting has been extended to XML files
- the editor was improved for editing arbitrary text files

XQUERY 3.0
- the code has been aligned with latest changes in the specs
- HTML5 support has been updated

WEB APPLICATIONS
- new modules have been added: Request, Session, Sessions
- logging has been revised and extended to HTTP requests
- SSL support added, switched to Jetty 8
- all operation modes have been unified and simplified
- RESTXQ elements added to simplify forwarding and redirects

CORE FEATURES
- improved stability of concurrent read/write operations
- the INSPECT command performs database sanity checks
- EXECUTE triggers the execution of command scripts

BaseX 7.3, 18.06.2012

- Many new internal XQuery Modules have been added, and existing
ones have been revised to ensure long-term stability of your future
XQuery applications: http://docs.basex.org/wiki/Module_Library
- A new powerful Command API is provided to specify BaseX commands
and scripts as XML: http://docs.basex.org/wiki/Commands#Basics
- The full-text fuzzy index was extended to also support wildcard
queries: http://docs.basex.org/wiki/Full-Text
- The XQuery 3.0 simple map operator gives you a compact syntax to
process items of sequences: http://docs.basex.org/wiki/XQuery_3.0
- BaseX as Web Application can now start its own server instance:
http://docs.basex.org/wiki/Web_Application
- All command-line options will now be executed in the given order:
http://docs.basex.org/wiki/Startup_Options
- Charles Foster's latest XQJ Driver supports XQuery 3.0 and the
Update and Full Text extensions: http://xqj.net/basex/

BaseX 7.2.1, 27.04.2012

- Our value indexes now support string-based range queries:
http://docs.basex.org/wiki/Indexes#Value_Indexes
A big thank you to our sponsors who made this possible!
- Our new XQJ API is based on Charles Foster's implementation.
It fully utilizes the client/server architecture:
http://xqj.net/basex
- Import of XQuery modules has been simplified.
http://docs.basex.org/wiki/Repository
- Simplified invocation of Java code from XQuery
http://docs.basex.org/wiki/Java_Bindings
- Full support for the XQuery 3.0 Regular Expressions syntax:
http://www.w3.org/TR/xpath-functions-30/#regex-syntax
- Updating functions can now return values:
http://docs.basex.org/wiki/Database_Module#db:output
- Unified handling of document and database URIs:
http://docs.basex.org/wiki/Databases#Access_Resources
- Pinning of opened database replaced by filesystem locking:
http://docs.basex.org/wiki/Transaction_Management#Locking
- REST, RESTXQ, WebDav: concurrency issues fixed

BaseX 7.2, 24.03.2012

API:
- new restxq api, introduced by adam retter
- rest: failed query now returns line/column position
- client apis: commands added for binding context items,
and checking if a query performsn updates
GUI:
- performance: limit number of displayed hits - fixed editor highlighting
CLIENT/SERVER:
- introduce timeout for rest and other apis
- verify permissions when using local sessions
- improved logging of error output
OPTIONS:
- new options for configuring proxy servers
- advanced TagSoup options added for importing HTML files
- ignore TIMEOUT for admin operations
XQUERY:
- hof:top-k-with(..) and hof:top-k-by(..) return the top k items in a sequence
- repo:list() now returns nodes - support for annotations
- new signatures for util:mem() and util:time()
- updated EQName syntax: Q{uri}local-name
- XQuery 3.0 annotations
- optimized ft:tokens()
COMMANDS:
- fixed export of pure RAW data
- permissions changed for REPO DELETE, REPO INSTALL and REPOLIST
- remove 'path' argument from CREATE INDEX and DROP INDEX
CORE:
- pin opened databases to avoid concurrent updates with multiple BaseX instances
COMMAND-LINE:
- added readline support for Linux-/Unix-based terminals
- saving history
SERIALIZATION:
- HTML5 support added
- new 'separator' option to specify the character to be used as item separator
MISCELLANEOUS:
- fixed WAR/web archive issues
- limit query exceptions to file names for non-admin users
- fixed Path Summary staying out-of-date issue

BaseX 7.1.1, 19.02.2012

GUI:
- new "Package" dialog: list, install and delete XQuery Packages
- "New/Add" dialog: increased usability, automatic detection of input
formats; "RAW" format added to simplify import of raw files
- "Export" dialog enhanced to support other methods like JSON, and
to specify additional serialization parameters
Command-Line:
- new option -L: add trailing newline after query result
- new option -C: execute commands from batch script
REST:
- new "option" parameter: set options before executing request
Full-Text:
- Indonesian Stemmer (thanks Andria Arisal!)
IO:
- faster read/write access to byte arrays

BaseX 7.1, 07.02.2012

GUI
- improved document management: hierarchical view of databases resource
- easier index creation/removal and database optimization
- JSON/JsonML parser added
- editor: updated and reopened files are reverted from disk
REST
- automatic XML conversion of popular content types (JSON/JsonML, CSV, HTML)
XQUERY
- new index module for directly accessing database index structures
- new repository module to manage EXPath packages via XQuery
- db:list-details() returns information on the database resources
- db:content-type() retrieves the content-type of a specific database resource
- ft:tokens() returns full-text tokens stored in the index
- ft:tokenize() tokenizes a given input string
- util:path() returns the path to the (currently executed) query file
- util:time() prints the time needed to evaluate a given expression
- util:mem() prints the allocated memory for evaluating a given expression
- expanded QNames, computed namespace constructors
COMMAND-LINE
- multiple query files and -c/-i/-q flags can now be specified
INDEXING
- ID/Pre mapping, incremental indexing of value index structures
- document index fix: correct replacement of existing documents
- document index: faster updates
OPTIONS
- ADDRAW: add new resources as raw files if not filtered by CREATEFILTLER
- MAXLEN: max. length of strings to be added to the index structures
- MAXCATS: max. number of distinct values stored in statistics
- UPDINDEX: turn on incremental index updates for value indexes
- improved BINDINGS option
CLIENT/SERVER
- improved log output if query iterator is used
- new ActionScript API (thanks to Manfred Knobloch!)
SERIALIZATION
- a project specific "newline" parameter specifies the type of newline to be used
COMMANDS
- modified KILL command accepts IP:port combination to specify target
TRANSLATIONS
- Bahasa Indonesian: thanks to Andria Arisal!
- Mongolian: thanks to Tuguldur Jamiyansharav!

BaseX 7.0.2, 11.11.2011

FULL TEXT
- Stemming support for Japanese text corpora
(thanks to Toshio HIRAI!)
STARTUP
- Updated start scripts (thanks to Ralf Jung!)
- System property "org.basex.path" added to specify
project's home directory (thanks to malamut2!)
XQUERY
- Numerous minor XQuery 3.0 enhancements and fixes
- Fix for db:optimize() calls (thanks to Martin Hillert!)
STORAGE
- Fix to retain newly introduced namespaces
(thanks to Laurent Chevalier!)
USERS
- Default privileges for new users set to "none"
(thanks to Pascal Heus!)
REST
- query base URI for evaluated queries is now $HTTPPATH
(thanks to Florent Georges!)

BaseX 7.0.1, 23.10.2011

DISTRIBUTIONS:
- Windows installer was updated to support latest features
- ZIP file was updated (initial config & directories added)
- Short directory names are chosen if config file resides in app.dir.
- Start scripts have been improved
XQUERY:
- much faster execution of count() when applied to opened databases
SERVER:
- Flag -c connects to an existing database server
- Flag -s specifies a port for stopping the HTTP server (Jetty)
- Flag -S starts the HTTP server as a service
- running write operations will be completed before server is stopped
API:
- Ruby, Python, PHP, Java: clients updated

BaseX 7.0, 14.10.2011

API:
- Native and tightly integrated REST implementation replaces JAXRX
- WebDAV provides a file system like access to BaseX databases
XQuery:
- Parsing and serializing JSON documents
- SQL module builds a JDBC bridge to access relational databases
- EXPath Cryptographic Module for encryption and XML Signatures
- Full text engine tokenizes Japanese texts (thx to Toshio Hirai!)
- db:retrieve() and db:store() handle raw data
- util:uuid() to create random universally unique identifier
- db:content-type() retrieves the content type of a resource
- db:exists() checks if the specified database or resource exists
- db:is-raw(), db:is-xml() check existence and type of a resource
- db:list(), db:open() uses two separate arguments to specify
database and resource path
- further modifications: db:add(),
SERVER:
- BaseX HTTP Server activates the REST and WebDAV services
- ITER command returns all results in one go and the client
handles the iterative execution
COMMANDS:
- FLUSH command to write all database buffers to disk
- STORE command to store raw data in a database
- RETRIEVE command to get raw data from the database
- modified ADD command
OPTIONS:
- SERVERHOST: to specify a server
- KEEPALIVE: optional timeout to close inactive client sessions
- AUTOFLUSH database buffers
- QUERYPATH: path to executed query

BaseX 6.7.1, 27.07.2011

XQuery:
- New database functions for adding, deleting, renaming,
replacing documents and optimizing databases:
http://docs.basex.org/wiki/Database_Functions
- XSLT transformations via Java or Saxon:
http://docs.basex.org/wiki/XSLT_Functions
- All XQuery 3.0 functions are now supported:
http://docs.basex.org/wiki/XQuery_3.0
- Tail-call optimizations to speed up recursive functions
Storage:
- Use ADDARCHIVES to parse files within archives
- Use SKIPCORRUPT to skip non-well-formed files when
creating a database: http://docs.basex.org/wiki/Options
- Max. level depth limit (256) removed
- The document index is now incrementally updated
GUI:
- "Manage Database" dialog now supports operations on
multiple databases and the command-line glob syntax:
http://docs.basex.org/wiki/Commands#Glob_Syntax
- Drag and drop operations introduced for opening new files
and copying file paths
Client/Server:
- Delay clients that repeatedly fail to login
- All remaining plain-text password operations now use
MD5 to send and log passwords

BaseX 6.7, 30.06.2011

Main Features:
[ADD] Native EXPath Packaging system support:
http://docs.basex.org/wiki/Packaging
[ADD] Client/server event notification:
http://docs.basex.org/wiki/Events
[ADD] Persistent document index added to speed up
access to large collections
XQuery:
[ADD] New database and full-text functions:
http://docs.basex.org/wiki/Database_Functions
http://docs.basex.org/wiki/Full-Text_Functions
[ADD] Event function added to fire events
[MOD] Index optimizations, better cost estimations
Commands:
[ADD] Glob syntax added to database commands:
http://docs.basex.org/wiki/Commands
[ADD] New commands added: REPLACE, RENAME,
REPO DELETE/INSTALL/LIST, CREATE/DROP EVENT
[MOD] BACKUP optimized, renamed to CREATE BACKUP

BaseX 6.6.2, 08.05.2011

API:
[ADD] JAX-RX API now supports basic user authentication:
http://docs.basex.org/wiki/JAX-RX_API
[ADD] The COPY command creates identical database copies:
http://docs.basex.org/wiki/Commands#COPY
[ADD] The OPTIMIZE ALL command minimizes all database structures:
http://docs.basex.org/wiki/Commands#OPTIMIZE
XQuery:
[ADD] map expressions and functions added:
http://docs.basex.org/wiki/Map_Functions
[MOD] File module aligned with latest EXPath specification:
http://docs.basex.org/wiki/File_Functions
[MOD] Speedup of full-text queries with keyword lists.
Example: $x contains text { 'a', 'b', 'c', ...}
[MOD] XQuery Update optimizations for replacing nodes;
tree-aware updates.
[MOD] XQuery optimizations to avoid materialization of
sequences.
GUI:
[ADD] Multiple editor tabs added
[ADD] Database management: copy databases
Core:
[ADD] Internal XML parser: HTML entities added
[FIX] Glob syntax: support for multiple file suffixes

BaseX 6.6.1, 31.03.2011

XQuery:
[ADD] index rewritings added for .../text()[. = ..] syntax
[ADD] optimizations of mixed axis path expressions, e.g.: //x/name()
[MOD] index rewritings on collections fixed and generalized
[MOD] faster evaluation of filters with pos. predicates, e.g.: $x[5]
[FIX] fixed relocation of let clauses in GFLWOR expressions
[FIX] trace function returned wrong original results
[FIX] variables in catch clauses were discarded
[FIX] HOF optimizations and fixes
GUI:
[FIX] language option (for Japanese, German, etc. interface) fixed

BaseX 6.6, 23.03.2011

[ADD] XQuery 3.0: Full support of Higher Order Functions 
(dynamic function invocation, inlined functions, etc.)
[ADD] XQuery: Support of the EXPath ZIP Module
[MOD] XQuery Update: numerous speedups, memory consumption reduced
[ADD] Commands: COPY command added to clone existing databases
[ADD] CSV/Test importers revised, ENCODING option added
[ADD] XQuery utility functions added
util:format(), util:crc32(), util:md5(), util:sha1(), etc.
[ADD] XQuery 3.0: context item and decimal-format declarations
[FIX] Storage and update features revised, bugs fixed

BaseX 6.5.1, 15.02.2011

[ADD] Storage: Parser options added for built in importers (CSV, TXT)
[ADD] APIs: JAX-RX: Flag added to start server in background (-s)
[ADD] APIs: Command-line flag added to pass on extern variables (-b)
[ADD] XQuery Functions: util:integer-from-base(), util:integer-to-base(),
util:sha1(), util:md5()
[ADD] Commands: DROP DB ... ON [...]: delete users from specific databases
[ADD] Packaging: W3 catalog resolver file (w3-catalog.xml) added
[MOD] APIs: JAX-RX: all REST props and calls renamed to JAX-RX/jaxrx
[MOD] XQuery Full Text: improved rewritings for index-based evaluation
[MOD] XQuery Full Text: better scoring results for index-based queries
[MOD] Core: Locking: multiple readers/single writer concept revised
[MOD] Windows Packaging: "Start Server" icon starts JAX-RX as well

BaseX 6.5, 17.01.2011

[ADD] Commands: LIST extended by optional database [path] argument
[ADD] JAX-RX: full database path is now used to list documents within
a database. Use "query" parameter to show document contents
[ADD] JAX-RX: bind external variables to query and run parameter
[ADD] Windows Installer: creates startmenu entries,
sets file associations and path environment entries
[ADD] GUI/Create: support different input formats: XML, HTML, Text, ..
[MOD] Commands: Allow hierarchical paths in OPEN command
[MOD] APIs: UTF-8 encoding added to Java binding
[FIX] Storage: text decompression synchronized
[FIX] XQuery: context choice in filter predicates
[MOD] JavaDoc: package.html files added and updated

BaseX 6.3.4, 14.12.2010

[ADD] Storage: Text Compression added, shrinking text nodes up to 50%
[MOD] XQuery/collection(): Caching of doc paths to speedup repeated lookups
[MOD] XQuery/collection(): Lazy instantiation of document nodes
[MOD] Storage: Limit of number of attributes per element raised to 2^31
[MOD] Commands: INFO TABLE renamed to INFO STORAGE

BaseX 6.3.3, 06.12.2010

[ADD] XQuery: "ft" module added to extended XQuery Full Text with
useful features
[ADD] Command: DROP BACKUP added to drop database backups
[ADD] GUI: new menu items "Add documents" and "Delete documents"
[ADD] GUI: new menu item "Manage" to backup/restore/rename/drop databases
[MOD] XQuery: "db" and "file" modules updated
[MOD] System.getProperty("user.dir") added as optional home directory
[MOD] GUI: menu structure updated
[FIX] Command: ADD modified to support the addition of larger documents
[FIX] GUI: highlighting of search terms in text editors
[FIX] GUI: file chooser supports new extensions: *.xql, *.xquery, ...
[FIX] Server: StressTest

BaseX 6.3.2, 17.11.2010

[ADD] Storage: compression of text files (activation: SET COMPRESS 1) 
[ADD] XQuery: new "db:" and "util:" functions, replacing "basex:"
[ADD] XQuery: initial implementation of the EXPath http module
[ADD] XQuery Editor: line/column information, support for surrogates
[MOD] XQJ: dummy properties added: user, password, serverName, port
[FIX] Storage: wildcard index did not find last word
[FIX] Dynamic integration of optimal CatalogResolver implementation
[FIX] XQuery bugs (count() on open collection, external functions, ..)

BaseX 6.3.1, 09.11.2010

[ADD] Fulltext: Built-in support for Snowball, Wordnet, and Lucene stemmers
[ADD] Fulltext: Internal German stemmer added
[ADD] REST: support for hierarchical collections added; details will follow
[ADD] REST/GET: bind parameter added to enable external variable bindings
[ADD] REST/POST: <variable/> and <output/> elements added
[ADD] APIs: bind(), execute() & info() added to query iterator
[ADD] APIs: add() implemented for adding documents to existing databases
[MOD] REST: start was simplified; just launch basex-api/etc/basexrest(.bat)
[MOD] JAX-RX: latest version was moved to our BaseX SVN repository
[MOD] Warning: start class BaseXWin was renamed to BaseXGUI
[MOD] Work on the upcoming Windows installer
[FIX] XQuery: improved handling of extended kind tests in sequence types
[FIX] XQuery 3.0 functions (e.g. format-integer())
[FIX] XQuery Update, Namespaces, collections
[FIX] GUI: realtime filtering

BaseX 6.3, 09.11.2010

[ADD] XQuery: hierarchical path support for collection() function
[ADD] Storage/GUI: CatalogResolver added for caching DTDs
[ADD] Server: -c flag added to allow initial database commands
[ADD] Dutch translation of BaseX added; thanks to Huib Verweij!
[MOD] Storage: Speedup of parallel disk access (less synchronized flags)
[MOD] XQuery: iterative evaluation of more location paths
[MOD] XQuery Full Text: updated to reflect fix of W3 Bug #9448
[FIX] XQuery: numerous namespace issues resolved
[FIX] XQuery: allow dynamic evaluation of basex:index()
[FIX] GUI: PlotView and TreeView fixes

BaseX 6.2.9, 04.10.2010

[ADD] Server output added: "Server stopping"/"Server stopped"   
[ADD] Command input via STDIN enabled
[MOD] Minor visual tweaks
[MOD] XQuery Speedups (Math -> StrictMath, FLWOR rewritings)
[FIX] Command parsing (e.g. CREATE DB TEST# ..)
[FIX] TreeView fixes

BaseX 6.2.8, 28.09.2010

[ADD] Query Editor: Close Button
[ADD] Query Editor: Save/Save As Button
[ADD] Command Line: parsing of standard input
[FIX] XQuery: file module completed
[FIX] XQuery: basex:db() returns all database documents
[FIX] GUI: Command input suggestions
[FIX] GUI: interactive update operations
[MOD] XQuery: opt. on positional predicates
[MOD] XQuery: opt. duplicate detection

BaseX 6.27, 06.09.2010

[NEW] Commands: BACKUP/RESTORE/SHOW BACKUPS
[NEW] Setup: Installer, Windows Service
[ADD] GUI: TreeView
[ADD] API: query iterator
[ADD] XQuery: GROUP BY, incl. ORDER clauses
[ADD] XQuery: line/col information for runtime errors
[ADD] XQuery: file library
[ADD] XQuery: test for XQuery 1.1 features
[MOD] XQuery: doc() now creates main-memory instances
[MOD] XQuery: improved constant folding
[MOD] XQuery: Value/Item types separated
[MOD] XQuery: Numerous query optimizations
[FIX] Storage: OutOfBounds exception, caused by TableOutput
[FIX] XQuery: namespaces, in-scope-prefixes(), ...
[FIX] XQuery: lang(), translate(), analyze-string(), ...