We are glad to give you Version 9.4 of BaseX, our XML framework, database system and XQuery 3.1 processor:

We have focused on rewriting and optimizing complex XQuery code and speeding up your RESTXQ apps:


  • 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


  • result view: show number of results and result size
  • Shift F4-F7: toggle search options (case, regeex, ..)
  • Ctrl-Shift-B: jump to matching bracket


  • single lock option for reading and updating queries
  • Java bindings: annotation added for updating 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


  • 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

For a more comprehensive list of added and updated features. please check out our documentation: https://docs.basex.org/. Your feedback is welcome.

Have fun, Your BaseX Team

Back to Posts
Related Content: