BaseX Changelog

What's new in BaseX 9.7.3

Jun 30, 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)

  • 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 21, 2021)

  • Minor fixes, Performance tweaks

New in BaseX 9.6.2 (Sep 30, 2021)

  • Performance tweaks, minor bug fixes

New in BaseX 9.6.1 (Aug 26, 2021)

  • GUI bug fix, XQuery performance tweaks

New in BaseX 9.6 (Aug 19, 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
  • WEB APPLICATIONS:
  • RESTXQ: Server-Timing HTTP headers are attached to the reponse

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 25, 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 24, 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 11, 2020)

  • New compile-time optimizations and performance tweaks

New in BaseX 9.4.2 (Aug 22, 2020)

  • Performance tweaks, bug fixes

New in BaseX 9.4.1 (Jul 26, 2020)

  • Minor bug fixes and performance tweaks

New in BaseX 9.4 (Jul 14, 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 10, 2020)

  • Minor bug fixes, numerous performance tweaks

New in BaseX 9.3.1 (Dec 19, 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)

  • Windows installer: Shortcuts fixed
  • 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 feautres:
  • 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 22, 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 1, 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.2 (May 31, 2018)

  • Critical bug fixes:
  • XQuery: Node ordering of mixed database/fragment instances
  • XQuery: Index rewritings of paths with nested positional predicates
  • Improvements:
  • WebDAV: Much faster locking of database resources
  • XQuery: Enable ENFORCEINDEX for variable predicate arguments
  • GUI: Larger interaction components, unified font sizes
  • Minor Bug fixes:
  • DBA: Suppress menu on login page
  • Commands: Nested evaluation with variable bindings
  • XQuery: Static typing of lookup expressions

New in BaseX 9.0.1 (Apr 24, 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 (Mar 23, 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 21, 2017)

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

New in BaseX 8.6.6 (Aug 25, 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 (Apr 6, 2017)

  • Minor bug fixes and performance tweaks.

New in BaseX 8.6.1 (Apr 6, 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 (Apr 6, 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 (Apr 6, 2017)

  • 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.1 (Mar 5, 2016)

  • Minor bug fixes, experimental support for 8.5 features.

New in BaseX 8.4 (Mar 5, 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 (Mar 5, 2016)

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

New in BaseX 8.3 (Mar 5, 2016)

  • 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 (Mar 5, 2016)

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

New in BaseX 8.2.2 (Jul 7, 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 16, 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 23, 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 8, 2013)

  • XQUERY:
  • Our 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
  • we have added support for XQuery collations
  • we have extended the Database, Archive, File and other Modules
  • COMMANDS:
  • database names have got more flexible
  • we have 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 6, 2013)

  • DATABASE LOCKING:
  • updates on different databases can now be executed in parallel and won't lock your read-only queries anymore
  • XQUERY:
  • when errors are raised, the full stack trace is now returned
  • the EXPath Geo Module, Fetch Module and HTML Module have been added
  • 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 (Dec 21, 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
  • 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
  • The XQuery 3.0 simple map operator gives you a compact syntax to process items of sequences
  • BaseX as Web Application can now start its own server instance
  • All command-line options will now be executed in the given order
  • Charles Foster's latest XQJ Driver supports XQuery 3.0 and the
  • Update and Full Text extensions

New in BaseX 7.2.1 (Apr 28, 2012)

  • Our value indexes now support string-based range queries
  • Our new XQJ API is based on Charles Foster's implementation. It fully utilizes the client/server architecture
  • Import of XQuery modules has been simplified
  • Better Java code integration
  • Full support for the XQuery 3.0 Regular Expressions syntax
  • Updating functions can now return values
  • Unified handling of document and database URIs
  • Pinning of opened database replaced by filesystem locking
  • REST, RESTXQ, WebDav: concurrency issues fixed

New in BaseX 7.2 (Mar 26, 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

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

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

New in BaseX 7.0.2 (Feb 9, 2012)

  • FULL TEXT
  • Stemming support for Japanese text
  • STARTUP
  • Updated start scripts
  • System property "org.basex.path" added to specify
  • project's home directory
  • XQUERY
  • Numerous minor XQuery 3.0 enhancements and fixes
  • Fix for db:optimize() calls
  • STORAGE
  • Fix to retain newly introduced namespaces
  • USERS
  • Default privileges for new users set to "none"
  • REST
  • query base URI for evaluated queries is now $HTTPPATH

New in BaseX 7.0.1 (Oct 24, 2011)

  • 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 improvedXQUERY:
  • much faster execution of count() when applied to opened databasesSERVER:
  • 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 stoppedAPI:
  • Ruby, Python, PHP, Java: clients updated

New in BaseX 7.0 (Oct 21, 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

New in BaseX 6.7.1 (Jul 29, 2011)

  • XQuery:
  • New database functions for adding, deleting, renaming, replacing documents and optimizing databases
  • XSLT transformations via Java or Saxon
  • All XQuery 3.0 functions are now supported
  • 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
  • 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
  • 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.5.1 (Feb 17, 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

New in BaseX 6.5 (Jan 18, 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
  • [MOD] Commands: Allow hierarchical paths in OPEN command
  • [MOD] UTF-8 encoding added to java binding
  • [FIX] Storage: text decompression synchronized
  • [FIX] XQuery: context choice in filter predicates

New in BaseX 6.3.4 (Jan 18, 2011)

  • [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

New in BaseX 6.3.3 (Jan 18, 2011)

  • [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

New in BaseX 6.3.2 (Jan 18, 2011)

  • [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, ..)

New in BaseX 6.3.1 (Jan 18, 2011)

  • [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: and 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

New in BaseX 6.3 (Jan 18, 2011)

  • [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
  • [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

New in BaseX 6.2.9 (Jan 18, 2011)

  • [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

New in BaseX 6.2.8 (Jan 18, 2011)

  • [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

New in BaseX 6.2.7 (Jan 18, 2011)

  • [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(), ...

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.