BaseX Changelog

What's new in BaseX 9.7.3

Jul 1, 2022
  • DBA: Improved support for database backups
  • Performance tweaks and bug fixes
  • BaseX 10 preview: Store Module (before: Caching Module)
  • BaseX 10 preview: Backup of general data (users, jobs, stores)

New in BaseX 9.7.2 (May 15, 2022)

  • English Stemmer: dictionary for irregular forms added
  • Preview implementations of BaseX 10 features
  • Performance tweaks, minor fixes

New in BaseX 9.7.1 (Apr 26, 2022)

  • RESTXQ: improved caching for unmodified modules
  • GUI: improved support for middle mouse button
  • GUI, editor: list opened files (Ctrl-F6)
  • Backups: support for comments added
  • XQuery: inspect:functions: parse modules only once
  • XQuery: db:delete: Faster deletion of binary resources
  • XQuery: jobs:eval: handling of large job numbers revised
  • XQuery optimizations: rewrite value to general comparisons

New in BaseX 9.7 (Mar 23, 2022)

  • XQUERY:
  • numerous performance tweaks and optimizations
  • support for formatting integers and dates in French
  • xslt:transform-report: support for xsl:messages
  • util:strip-namespaces: remove namespaces from elements
  • XSD validation: improved support for XML catalogs

New in BaseX 9.6.4 (Dec 17, 2021)

  • Performance tweaks, minor fixes

New in BaseX 9.6.3 (Oct 22, 2021)

  • Minor fixes, Performance tweaks

New in BaseX 9.6.2 (Oct 1, 2021)

  • Performance tweaks, minor bug fixes

New in BaseX 9.6.1 (Aug 27, 2021)

  • GUI bug fix
  • XQuery performance tweaks

New in BaseX 9.6 (Aug 20, 2021)

  • XQUERY: MODULES, FEATURES:
  • Archive Module, archive:write: stream large archives to file
  • SQL Module: support for more SQL types
  • Full-Text Module, ft:thesaurus: perform Thesaurus queries
  • Fulltext, fuzzy search: specify Levenshtein limit
  • UNROLLLIMIT option: controll limit for unrolling loops
  • XQUERY: JAVA BINDINGS:
  • Java objects of unknown type are wrapped into function items
  • results of constructor calls are returned as function items
  • the standard package java.lang. has become optional
  • array arguments can be specified with the middle dot notation
  • conversion can be controlled with the WRAPJAVA option
  • better support for XQuery arrays and maps

New in BaseX 9.5.2 (May 27, 2021)

  • Performance tweaks, minor bug fixes

New in BaseX 9.5.1 (Apr 2, 2021)

  • Performance tweaks, minor bug fixes

New in BaseX 9.5 (Feb 26, 2021)

  • RESTXQ:
  • the client IP address behind a proxy is added to the logs
  • stack traces in the error message can now be suppressed
  • the default error code has been changed from 400 to 500
  • error messages are more user-friendly now (#1708)
  • content negotiation was improved (#1991)
  • inline arguments of called function (#1982)
  • XQUERY FUNCTIONS:
  • Utility: new functions for sequences, arrays and maps
  • Higher-Order Functions: hof:drop-while
  • Jobs: More options for job intervals
  • XQUERY PERFORMANCE:
  • revised scoring propagation (all items will take less memory)
  • default function inlining limit reduced from 100 to 50
  • axis path rewritings, better typing (#1910, #1976, #1979)
  • better typing (#1906, #1908, #1909, #1944, #1945)
  • faster data()/string() checks (#1975)
  • rewrite map:merge to map:put (#1969)
  • rewrite order by to fn:sort (#1966)
  • rewrite group by to fn:distinct-values (#1932)
  • rewrite quantifiers to FLWOR expressions (#1961)
  • optimizations of arithmetic expressions (#1938, #1972)
  • optimizations of lookup operator (#1929, #1984)
  • optimizations of counts (#1965, #1973, #1974)
  • optimizations of regular lists (#1919, #1924)
  • optimizations of switch expression (#1920)
  • optimizations of instance of (#1939)
  • distinct values (#1930, #1967)
  • positional checks (#1937)
  • existence checks (#1971)

New in BaseX 9.4.6 (Jan 7, 2021)

  • Performance tweaks, minor bug fixes

New in BaseX 9.4.5 (Nov 26, 2020)

  • Minor bug fixes

New in BaseX 9.4.4 (Nov 6, 2020)

  • Performance tweaks, minor bug fixes

New in BaseX 9.4.3 (Sep 13, 2020)

  • New compile-time optimizations and performance tweaks

New in BaseX 9.4.2 (Aug 21, 2020)

  • Performance tweaks, bug fixes

New in BaseX 9.4.1 (Jul 27, 2020)

  • Minor bug fixes and performance tweaks

New in BaseX 9.4 (Jul 16, 2020)

  • WEB APPLICATIONS:
  • DBA: support for millions of log entries
  • LOGTRACE option: write trace output to logs or STDERR
  • rest:init: Full or partial initialization of RESTXQ cache
  • basexhttp: register job services
  • GUI:
  • result view: show number of results and result size
  • Shift F4-F7: toggle search options (case, regeex, ..)
  • Ctrl-Shift-B: jump to matching bracket
  • XQUERY LOCKING:
  • single lock option for reading and updating queries
  • Java bindings: annotation added for updating functions
  • XQUERY FUNCTIONS:
  • convenience functions: json:doc, csv:doc, html:doc
  • element names: convert:encode-key, convert:decode-key
  • jobs:eval: option added for writing log entries
  • session module: only create new sessions if required
  • XQUERY PERFORMANCE:
  • boolean comparisons: flatten nested expressions
  • boolean expressions: merge conjunctions
  • comparisons: simplify operands with if expression
  • database functions: always open at compile time
  • databases: propagate to more expressions at compile time
  • filters: inline context for single items
  • filters: rewrite to simple maps
  • FLWOR: inline where clauses into let clauses
  • FLWOR: merge last with return clause, rewrite to simple map
  • FLWOR: rewrite "return if ..." to "where ... return"
  • fn:for-each, fn:filter: rewrite to FLWORs and filters
  • if expression, EBV tests: simplify boolean tests
  • lists, sets, logical expressions: flatten expressions
  • lists: rewrite to union expressions
  • logical expressions: apply more boolean algebra rules
  • paths: remove redundant predicates
  • predicates with name functions: rewrite to name tests
  • predicates: merge expressions, discard redundant tests
  • predicates: remove of superfluous and redundant tests
  • set expressions: merge operands
  • simple map: inline cast expressions
  • simple maps: faster evaluation
  • simple maps: merge operands
  • simple maps: rewrite to paths, optimize for index access
  • switch: rewrite to if expression
  • types: skip redundant checks, promotions and conversions

New in BaseX 9.3.3 (May 15, 2020)

  • Minor bug fixes, performance tweaks, new query optimizations

New in BaseX 9.3.2 (Mar 11, 2020)

  • Minor bug fixes, numerous performance tweaks

New in BaseX 9.3.1 (Dec 20, 2019)

  • Minor bug fixes and performance tweaks

New in BaseX 9.3 (Nov 29, 2019)

  • RESTXQ:
  • seamless streaming of custom responses to the client
  • Request Module: bind attributes to current request
  • better support for the OPTIONS and HEAD methods
  • enforce premature HTTP response with web:error
  • optional GZIP compression of HTTP responses
  • trace output is now stored in database logs
  • server-side forwarding with web:forward
  • USER INTERFACES:
  • GUI: project view: skip directories with .ignore file
  • GUI: project view: do now follow symbolic links
  • DBA: user panel updated to show user info
  • DBA: faster processing of log entries
  • STORAGE:
  • hot fix for replacing single documents with namespaces
  • improved XQuery processing of binary resources
  • ADDCACHE: faster caching of single documents
  • WITHDB: less locking when using fn:doc
  • XQUERY FUNCTIONS:
  • user:info/user:update-info: process user-specific data
  • db:open-id, db:open-pre: support for multiple ids
  • file:descendants: return descendant file paths
  • inspect:type: return type of a value as string
  • db:alter-backup: rename database backups
  • xsl:transform: support for catalog files
  • XQUERY PERFORMANCE:
  • merge of adjacent/redundant steps in paths and predicates
  • removal of redundant switch, typeswitch and catch clauses
  • interruption of side-effecting code (Files Modul etc.)
  • fn:count: pre-evaluation of zero-or-one arguments
  • faster processing of alternative steps: a/(b,c)
  • rewriting of paths to simple map expressions
  • inlining of values in simple map expressions
  • flattening of nested simple map expressions
  • rewriting of lists to union expressions
  • removal of superfluous predicates

New in BaseX 9.2.4 (Jul 26, 2019)

  • Minor bug fixes
  • Preview implementations of new 9.3 features

New in BaseX 9.2.3 (Jul 5, 2019)

  • Numerous query optimization tweaks (paths, simple maps, try/catch)
  • Minor bug fixes

New in BaseX 9.2.2 (May 21, 2019)

  • Bug fixes (Unit tests; sessions:ids; status code from XQuery error)
  • Web Module: Anchor arguments added
  • WITHDB option: fn:doc, consider or exclude database documents

New in BaseX 9.2.1 (May 7, 2019)

  • GUI: faster and smarter parsing of project files
  • RESTXQ: custom reponses are now sent as streams
  • Performance tweaks (static typing: typeswitch, instance of)
  • Minor bug fixes

New in BaseX 9.2 (Apr 16, 2019)

  • XQUERY PERFORMANCE:
  • comparisons will more often be rewritten to hash joins
  • optimized access to subsequences and single sequence items
  • consistent propagation of static types to evaluation results
  • improved static typing of function items (maps, arrays)
  • more aggressive pre-evaluation at compile time
  • STORAGE PERFORMANCE:
  • large databases will be opened faster
  • regular storage offset will be computed at runtime
  • GENERAL XQUERY FEATURES:
  • no need to import basex-api modules anymore!
  • Archive Module: archive:create-from, new options
  • Database Module: directory-based access via db:dir
  • Profiling Module: new functions (prof:gc, prof:runtime)
  • Validation Module: assign XSD validation features
  • WebSocket Module: query scheduling via ws:eval
  • Utility Module: various new helper functions
  • XSLT Module: support for XML Catalogs (thank you Liam)
  • NEW OPTIONS:
  • RESTXQERRORS: Suppress parsing errors at runtime
  • FULLPLAN: comprehensive query plan information
  • FULLTEXT FEATURES:
  • stemmer for Arabic texts added
  • USER INTERFACES:
  • GUI: better support for latest JDK versions (incl. OpenJDK)
  • DBA: revised search features in log panel

New in BaseX 9.1.2 (Jan 29, 2019)

  • Minor bug fixes; performance tweaks (faster WebDAV access).

New in BaseX 9.1.1 (Dec 14, 2018)

  • XQuery:
  • Comprehensive rewritings of positional predicates and functions
  • Higher-order functions: Improved type inference
  • Improved rewriting of context-based and/or nested predicates
  • Java Bindings:
  • Faster access to and evaluation of Java functions and variables
  • Improved pre-selection of function candidates at compile time
  • Better error messages (incl. function arity and similar names)
  • DBA:
  • Settings: user-defined pattern for ignoring log entries
  • Login: pass on URL query strings
  • Minor improvements:
  • Import: detect epub files as ZIP archives
  • Digest Authentication: No delay after first request
  • GUI, Preferences: user-defined choice of XML suffixes

New in BaseX 9.1 (Nov 2, 2018)

  • WebSockets:
  • New web service for full-duplex client/server communication
  • WebSocket Module: functions for organizing WebSocket connections
  • Embedded sample chat application
  • XQuery:
  • syntax extensions: Elvis operator, ternary if, if without else
  • local locks via pragmas and function annotations
  • Jobs Module: record and return registration times
  • Database Module: faster processing of value index functions
  • Update Module, update:output: support for caching maps and arrays
  • ENFORCEINDEX option: support for predicates with dynamic values
  • GUI:
  • Mac, Windows: Improved rendering support for latest Java versions
  • Choose and display context for XQuery editor expressions

New in BaseX 9.0.1 (Apr 29, 2018)

  • Critical bug fixes:
  • Storage: Short strings with extended Unicode characters fixed
  • XQuery: Nested path optimizations reenabled (e.g. in functions)
  • XQuery: map:merge, size computation fixed
  • XQuery: node ordering across multiple database instances fixed
  • Improvements:
  • GUI: Better Java 9 support (DPI scaling, font rendering)
  • XQuery, collections: faster document root tests
  • New R client. Thanks Ben Engbers!
  • Minor Bug fixes
  • XQuery: Allow interruption of tail-call function calls
  • XQuery, HTTP parsing of content-type parameters
  • XQuery, restrict rewriting of filter to path expression
  • GUI: progress feedback when creating databases via double-click

New in BaseX 9.0 (Apr 29, 2018)

  • XQUERY:
  • Comprehensive extensions in the internal XQuery optimizer framework
  • Dynamic hash joins rewritings of general comparisons
  • Register query jobs as persistent services
  • Process very large CSV files via the new CSV 'xquery' format
  • Update Module: higher-order functions for performing updates
  • Unified static typing, including maps, arrays and function items
  • COPYNODE: Lightweight copying of XML fragments
  • ENFORCEINDEX: Enforce rewriting for index access
  • STORAGE:
  • Improved database compression (short strings, whitespaces)
  • WEB APPLICATIONS:
  • Permissions layer: Unified definition of RESTXQ access patterns
  • RESTXQ: Full support for client- and server-side quality factors
  • REST: Run BaseX command scripts
  • Web server upgrade to Jetty 9
  • REPOSITORIES:
  • Combined packaging mechanism (XQuery and Java)
  • Java Packaging: Bundling of additional libraries
  • DISTRIBUTIONS:
  • Revised detection and configuration of BaseX home directory
  • Windows executable: better detection of Java libraries
  • DBA: BASEX DATABASE ADMINISTRATION:
  • Improved editing and evaluation of XQuery modules
  • Revised file, session and job management
  • MINOR UPDATES:
  • NEW: convert:binary-to-integers: return binary data as octets
  • NEW: db:option: return value of system option
  • NEW: fetch:xml-binary: retrieve XML from binary data
  • NEW: jobs:invoke: schedule job based on input file
  • NEW: out:cr: return carriage return
  • NEW: proc:fork: execute command in separate thread
  • NEW: prof:track: measure runtime and memory
  • NEW: util:replicate: return results multiple times
  • NEW: IGNOREHOSTNAME (certificates verification)
  • UPDATE: convert:integers-to-(base64|hex) renamed
  • UPDATE: file:read-text-lines: new $offset/$length arguments
  • UPDATE: fn:put: specify serialization parameters
  • UPDATE: http:send-request: support for compressed responses
  • UPDATE: proc:system, new input option: pass on stdin
  • UPDATE: prof:time, prof:memory: signatures updated
  • UPDATE: sql:execute(-prepared) returns update count
  • UPDATE: update:output(-cache) renamed; before: db:output(-cache)
  • UPDATE: web:response-header: status/message attributes
  • UPDATE: xquery:eval: new pass option (pass on error info)
  • UPDATE: xquery:eval-update renamed; before: xquery:update
  • UPDATE: xquery:parse(-uri): base-uri option added
  • UPDATE: xslt:transform(-text): cache XSLT transformer
  • UPDATE: JSON Module, 'xquery' format renamed; before: 'map'
  • UPDATE: Lazy Module renamed; before: Streaming Module
  • UPDATE: GUI: serialization parameters for result output
  • UPDATE: XQuery: numeric errors replaced with descriptive names
  • UPDATE: BaseXServer option -c accepts URLs and file references

New in BaseX 8.6.7 (Sep 22, 2017)

  • Bug fixes, performance (fn:tail, static typing in group by clauses).

New in BaseX 8.6.6 (Sep 5, 2017)

  • Bug fixes (map:merge, where clauses), performance tweaks.

New in BaseX 8.6.5 (Jul 28, 2017)

  • Various performance tweaks, minor fixes.

New in BaseX 8.6.4 (May 19, 2017)

  • Bug fixes (one critical), various performance tweaks

New in BaseX 8.6.3 (Apr 6, 2017)

  • Bug fixes, performance enhancements.

New in BaseX 8.6.2 (Mar 13, 2017)

  • Minor bug fixes and performance tweaks.

New in BaseX 8.6.1 (Feb 24, 2017)

  • Minor bug fixes and improvements:
  • Core, locking: revised locking of jobs exceeding PARALLEL limit
  • Client/Server: improved logging of unexpected exceptions
  • XQuery optimization: faster iteration of atomized values
  • GUI, Project View: only repaint relevant sub tree after updates
  • GUI, Project View: improved file search
  • GUI, Editor: revised rendering of whitespaces and long strings
  • GUI, Info View: limit size of evaluation cache

New in BaseX 8.6 (Jan 25, 2017)

  • LOCKING:
  • jobs without database access will never be locked
  • read transactions are now favored (adjustable via FAIRLOCK)
  • RESTXQ:
  • file monitoring was improved (adjustable via PARSERESTXQ)
  • authentication was reintroduced (no passwords anymore in web.xml)
  • id session attributes will show up in log data
  • DBA:
  • always accessible, even if job queue is full
  • pagination of table results
  • INDEXING:
  • path index improved: distinct values storage for numeric types
  • XQUERY:
  • aligned with latest version of XQuery 3.1
  • updated functions: map:find, map:merge, fn:sort, array:sort, ...
  • enhancements in User, Process, Jobs, REST and Database Module
  • CSV DATA:
  • improved import/export compatibility with Excel data

New in BaseX 8.5.3 (Aug 15, 2016)

  • Minor bug fixes, improved thread-safety.

New in BaseX 8.5.2 (Jul 22, 2016)

  • Minor bug fixes and performance tweaks.

New in BaseX 8.5.1 (Jul 11, 2016)

  • Bug fixes, experimental 8.6 features.

New in BaseX 8.5 (Jul 5, 2016)

  • DATABASE JOBS:
  • all registered database jobs are now centrally administered
  • jobs can be scheduled (periodical execution, start/end time)
  • job results can be cached and retrieved later on
  • new Jobs Module: XQuery functions for managing jobs
  • new commands: JOBS [LIST|RESULT|STOP]
  • DBA: visualization of currently registered jobs
  • XQUERY:
  • parallel execution via xquery:fork-join (thank you, James Wright!)
  • alignments with the latest changes in the XQuery 3.1 specification
  • easy chaining of update operations with the 'update' keyword
  • numerous optimizations, smarter rewritings and heuristics
  • XQUERY MODULES:
  • File, Conversion, Fetch Module: handling of invalid XML characters
  • Inspection Module: inspect:function-annotations added
  • OPTIONS:
  • LOGPATH: custom path for logging data
  • CACHETIMEOUT: timeout for dropping cached job results
  • AUTHMETHOD: `custom` added to skip authentication

New in BaseX 8.4.4 (May 3, 2016)

  • Minor bug fixes and tweaks.

New in BaseX 8.4.3 (Apr 13, 2016)

  • Minor bug fixes, experimental 8.5 features.

New in BaseX 8.4.2 (Mar 30, 2016)

  • Minor bug fixes, performance tweaks, experimental 8.5 features.

New in BaseX 8.4.1 (Mar 3, 2016)

  • Minor bug fixes, experimental support for 8.5 features.

New in BaseX 8.4 (Feb 8, 2016)

  • GUI:
  • Project View: parse all modules in a project in the background
  • Create Database, Properties: access to advanced database options
  • Sort Dialog: order by column positions and locale collation
  • INDEXING:
  • New Token Index: speedy token lookups in DITA and HTML documents
  • Including full support for incremental and main-memory databases
  • XQuery optimizations for fn:contains-token, fn:tokenize, fn:idref
  • WEB APPLICATIONS:
  • Cancel server-side queries via %rest:single annotation
  • DBA query editor: faster querying, better responsivity
  • XQUERY:
  • Database Module: ADDCACHE support (caching of large results)
  • Direct output of binary data with new 'basex' serialization method
  • Better XQuery 3.1 compliance: string constructors, new functions
  • Java bindings: address specific Java function signatures
  • User Module: create users and grant permissions in one step
  • DOCUMENTATION:
  • Many Wiki articles have been revised and updated

New in BaseX 8.3.1 (Oct 29, 2015)

  • XQuery 3.1: alignments with latest spec
  • Bug fixes (GUI errors, XPath optimizations)

New in BaseX 8.3 (Sep 24, 2015)

  • SELECTIVE INDEXING:
  • restrict value indexing to given elements and attributes
  • support extended to updatable and main-memory databases
  • VALIDATION:
  • support for RelaxNG validation (XML and compact syntax)
  • optional XML Schema 1.1 support
  • new function for creating validation reports
  • XQUERY MODULES:
  • Strings Module: Levenshtein, Soundex, Cologne Phonetic
  • updates in the Archive, Database, Admin and Process modules
  • DBA:
  • File panel: upload and download files
  • BUG FIXES:
  • automatic database optimization if node id turns negative
  • XQuery optimizations, performance tweaks, WebDAV issues

New in BaseX 8.2.3 (Jul 15, 2015)

  • Bug fixes (DBA, admin:write-log; namespaces).

New in BaseX 8.2.2 (Jul 7, 2015)

  • Various bug fixes (all minor).

New in BaseX 8.2.1 (Jun 23, 2015)

  • DBA:
  • code highlighting (thanks, James Ball!)
  • new panel for up- and downloading files
  • queries and files are now stored in a temporary directory
  • GENERAL:
  • various bug fixes

New in BaseX 8.2 (May 22, 2015)

  • XQUERY:
  • much faster sequence modification via finger trees
  • improved compliance with XQuery 3.1
  • DBA:
  • open, save and delete queries
  • better Tomcat support
  • STORAGE:
  • updatable index structures: reduced disk space consumption
  • XQUERY FUNCTIONS:
  • Standard Module: fn:json-to-xml, fn:xml-to-json
  • Web Module: web:encode-url, web:decode-url
  • File Module: file:is-absolute, file:resolve-path
  • Admin Module: admin:delete-logs
  • Database Module: db:output-cache
  • BUG FIXES:
  • locking, full-text requests, stemming
  • REMOVED FEATURES:
  • event handling (will be replaced by database triggers)

New in BaseX 8.1.1 (Apr 17, 2015)

  • Various bug fixes (all minor)

New in BaseX 8.1 (Mar 30, 2015)

  • XQUERY:
  • efficient Finger Tree algorithm for arrays
  • prof:variables() outputs list of currently bound variables
  • new higher-order functions: hof:scan-left, hof:take-while
  • WEB APPLICATIONS:
  • Web Module offers convenience functions for building web apps
  • RESTXQ: %input annotation; input-specific content-type parameters
  • OPTIONS:
  • RESTPATH: specify server path for queries and command scripts
  • IGNORECERT: ignore untrusted certificates when connecting to servers
  • COMMAND-LINE:
  • Bind input strings to the query context with -I

New in BaseX 8.0.3 (Mar 20, 2015)

  • Various bug fixes (all minor)

New in BaseX 8.0.2 (Mar 10, 2015)

  • REST:
  • Better support for concurrent read and write operations
  • XQUERY:
  • Speed up wildcard queries without wildcards
  • XQUnit: compare error codes as QNames
  • Fix: process each single flwor clause when removing variables
  • Fix: consider xml:space='preserve' during serialization
  • CORE:
  • Fix: consider case when pinning databases
  • HTTP:
  • Fix: digest authentication, correct quoting

New in BaseX 8.0.1 (Feb 23, 2015)

  • XQUERY:
  • Faster execution of single, index-based results
  • Iterative evaluation of steps with multiple predicates
  • Minor bug fixes:
  • WebDAV locking
  • Archive Module
  • Adaptive serialization of arrays and maps
  • Digest Authentication
  • Save command-line history

New in BaseX 8.0 (Feb 9, 2015)

  • XQUERY:
  • Support for XQuery 3.1 (nearly complete)
  • New default serialization ("adaptive")
  • MIXUPDATES option: update items and return results at the same time
  • Improved index rewritings, more precise cost estimations
  • New modules: Array and User Module
  • New annotations: �sex:inline, �sex:lazy
  • 13 of our modules were updated and extended
  • STORAGE:
  • Existing documents will be overwritten in-place whenever possible
  • Updatable index structures now take much less space
  • Faster document index (storing paths to all XML documents)
  • AUTOOPTIMIZE option: optimize after each update
  • XINCLUDE option: resolve or ignore XInclude tags
  • SECURITY:
  • Revised user management; users are stored as XML
  • Digest authentication, Salted SHA256
  • Language bindings updated
  • WEB APPLICATIONS:
  • Integrated application: DBA, Database Administration
  • AUTHMETHOD option: Basic vs. Digest authentication
  • RESTXQ: regular expressions in paths, quality factor support
  • GUI:
  • Better code completions

New in BaseX 7.9 (Jun 30, 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
  • XQUERY MODULES:
  • Database Module: parsing options for db:create/db:add
  • REST:
  • The "run" operation allows execution of server-side command scripts

New in BaseX 7.8.2 (Apr 4, 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

New in BaseX 7.8.1 (Feb 27, 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

New in BaseX 7.8 (Feb 13, 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!)

New in BaseX 7.7.2 (Oct 7, 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 '

New in BaseX 7.7.1 (Sep 16, 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

New in BaseX 7.7 (Aug 7, 2013)

  • XQUERY:
  • the XQuery 3.0 support is now complete!
  • 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
  • added support for XQuery collations
  • extended the Database, Archive, File and other Modules
  • COMMANDS:
  • database names have got more flexible
  • new options for simplifying the creation of large databases
  • WEB/HTTP SERVICES:
  • WebDAV has been enriched with locking features (sponsored feature!)
  • RESTXQ has been improved and extended

New in BaseX 7.6 (Feb 7, 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

New in BaseX 7.5 (Feb 5, 2013)

  • 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

New in BaseX 7.5 (Dec 22, 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

New in BaseX 7.3 (Jun 19, 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/

New in BaseX 7.2.1 (Apr 28, 2012)

  • Our value indexes now support string-based range queries: http://docs.basex.org/wiki/Indexes#Value_Indexes
  • 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
  • Better Java code integration: 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

New in BaseX 7.2 (Mar 26, 2012)

  • support for the new RESTXQ API for building XQuery web services
  • improved support for running BaseX as web application
  • XQuery: higher order functions added to speed up Top-K queries
  • proxy server settings added
  • advanced TagSoup options added for importing HTML files
  • XQuery: faster traversal of full-text index entries: ft:tokens()
  • Command-line: embedded readline and history support via JLine
  • XQuery 3.0: annotation added, updated EQName syntax (Q{uri}name)
  • opened databases are now pinned OS-wide to reduce write conflicts
  • HTML5 serialization of query results
  • a printable version of our Wiki documentation

New in BaseX 7.1.1 (Feb 20, 2012)

  • GUI:
  • new "Package" dialog: to list, install and delete XQuery Packages
  • "New/Add" dialog: "RAW" input format allows import of raw files; automatic detection of input formats, increased usability
  • "Export" dialog enhanced to support other methods like JSON, and various 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

New in BaseX 7.1 (Feb 9, 2012)

  • GUI:
  • improved document management: hierarchical view of db resources
  • 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 content-type of a specific 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 executed query file
  • util:time() prints the time needed to evaluate a given expression
  • util:mem() prints allocated memory for evaluating an 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 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:
  • "newline" parameter specifies the type of newline to be used
  • COMMANDS:
  • KILL command accepts IP:port combination to specify target
  • TRANSLATIONS:
  • Bahasa Indonesian: thanks to Andria Arisal!
  • Mongolian: thanks to Tuguldur Jamiyansharav!

New in BaseX 7.0.2 (Nov 14, 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!)

New in BaseX 7.0.1 (Oct 24, 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

New in BaseX 7.0 (Oct 17, 2011)

  • STORAGE: Files of any data type can now be stored in BaseX in their raw representation. This means that BaseX can now be used as a full-fledged storage system. Next, millions of documents can now be added faster than ever before.
  • APIs: We have rewritten our HTTP services: Our REST implementation has been integrated much more tightly in the core system. It can be used to query XML data, retrieve binary resources, and send database commands. A new WebDAV API provides access to the database via your file system, oXygen and various other clients. The classical clients (available for 10 different programming languages) have been extended and sped up.
  • XQUERY: Numerous modules have been added to process all kinds of data formats via XQuery: JSON documents can be parsed and serialized, SQL databases can be queried, XSLT cryptographics functions are available to encrypt data and use XML signatures. Our database module has been extended to facilitate the storage and modification of database resources.
  • FULL-TEXT: We now offer tokenization and stemming support for 21 different natural languages, including Japanese (thanks to Toshio HIRAI!). Next, we have further optimized the internals of our retrieval features of BaseX.

New in BaseX 6.7.1 (Jul 29, 2011)

  • XQuery:
  • New database functions for adding, deleting, renaming and 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

New in BaseX 6.7 (Jul 1, 2011)

  • Main Features:
  • [ADD] Native support for the EXPath Packaging system: 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 introduced 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

New in BaseX 6.5 (Jan 18, 2011)

  • Storage:
  • Text compression, shrinking text nodes up to 50%
  • Enhanced collection support
  • Backup functionality
  • Built-in importers: HTML, Text, CSV
  • XQuery:
  • XQuery 3.0 features, including GROUP BY and SWITCH statements
  • New file, HTTP, database and full-text functions
  • Built-in Lucene and Snowball Stemming for XQuery Full Text
  • GUI:
  • New TreeView visualization
  • Improved database management
  • APIs:
  • JAX-RX now supports hierarchical paths and external variables
  • Language Bindings extended with query iterators

New in BaseX 6.1 (Apr 19, 2010)

  • a new REST API, based on the JAX-RX interface, to communicate with BaseX via HTTP. » details
  • new bindings to use BaseX from other programming languages. » details
  • support for all XSLT/XQuery serialization parameters. » details
  • advanced query optimizations to apply index structures whenever appropriate.
  • enhanced conformance with XQuery Update/Full Text Recommendations.

New in BaseX 5.5 (Mar 24, 2009)

  • The XPath 1.0 implementation has been removed.
  • XQuery now supports all XPath optimizations and numerous others (index access, path and FLWOR rewritings based on databased statistics, etc.)
  • Sequential and index-based XQuery Full-Text support.
  • Enhanced TreeMap visualization with new layout algorithms and text thumbnails.

New in BaseX 5.0 (Nov 24, 2008)

  • Support of XQuery/XPath Full-Text 1.0, based on the W3C Candidate Recommendation. BaseX offers the most complete implementation which is currently available
  • XQuery Conformance: reaching 99.9% of the W3C XQuery Test Suite
  • Implementation of XQuery API for Java (XQJ) and XML:DB API (XAPI)
  • New Scatterplot View, advanced Table View
  • Improved XQuery Editor with syntax highlighting and error feedback
  • GUI Auto-Completion features for command and XPath input
  • Internationalization. Currently supported: English, Japanese, German

New in BaseX 4.0 (Oct 23, 2008)

  • Support of XQuery 1.0, reaching 99.3% of the W3C's test suite
  • Support of XQuery Full-Text, based on the W3C working draft
  • Several Indexes, including a full-text index (currently only applied by the XPath 1.0 implementation)
  • GUI interactions for XML Updates
  • A Query Panel has been added for entering XPath and XQuery
  • A Table View allows a flat view of regular XML documents
  • A Help View offers interactive feedback on the GUI features
  • A revised command syntax (try 'help' in the console or the GUI command mode)