VERSION 9.7.4 (July 11, 2023) ------------------------------------------ - various bug fixes VERSION 9.7.3 (June 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) VERSION 9.7.2 (May 14, 2022) ------------------------------------------- - English Stemmer: dictionary for irregular forms added - Preview implementations of BaseX 10 features - Performance tweaks, minor fixes VERSION 9.7.1 (April 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 VERSION 9.7 (March 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 VERSION 9.6.4 (December 17, 2021) -------------------------------------- - Performance tweaks, minor fixes VERSION 9.6.3 (October 21, 2021) --------------------------------------- - Minor fixes, Performance tweaks VERSION 9.6.2 (September 30, 2021) ------------------------------------- - Performance tweaks, minor bug fixes VERSION 9.6.1 (August 26, 2021) ---------------------------------------- - GUI bug fix, XQuery performance tweaks VERSION 9.6 (August 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 VERSION 9.5.2 (May 27, 2021) ------------------------------------------- - Performance tweaks, minor bug fixes VERSION 9.5.1 (April 2, 2021) ------------------------------------------ - Performance tweaks, minor bug fixes VERSION 9.5 (February 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) VERSION 9.4.6 (January 7, 2021) ---------------------------------------- - Performance tweaks, minor bug fixes VERSION 9.4.5 (November 24, 2020) -------------------------------------- - Minor bug fixes VERSION 9.4.4 (November 6, 2020) --------------------------------------- - Performance tweaks, minor bug fixes VERSION 9.4.3 (September 11, 2020) ------------------------------------- - New compile-time optimizations and performance tweaks VERSION 9.4.2 (August 21, 2020) ---------------------------------------- - Performance tweaks, bug fixes VERSION 9.4.1 (July 26, 2020) ------------------------------------------ - Minor bug fixes and performance tweaks VERSION 9.4 (July 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 VERSION 9.3.3 (May 15, 2020) ------------------------------------------- - Minor bug fixes, performance tweaks, new query optimizations VERSION 9.3.2 (March 10, 2020) ----------------------------------------- - Minor bug fixes, numerous performance tweaks VERSION 9.3.1 (December 19, 2019) -------------------------------------- - Minor bug fixes and performance tweaks VERSION 9.3 (November 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 VERSION 9.2.4 (July 26, 2019) ------------------------------------------ - Minor bug fixes - Preview implementations of new 9.3 features VERSION 9.2.3 (July 5, 2019) ------------------------------------------- - Numerous query optimization tweaks (paths, simple maps, try/catch) - Minor bug fixes VERSION 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 VERSION 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 VERSION 9.2 (April 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 VERSION 9.1.2 (January 22, 2019) --------------------------------------- Minor bug fixes; performance tweaks (faster WebDAV access). VERSION 9.1.1 (December 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 VERSION 9.1 (October 31, 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 VERSION 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 VERSION 9.0.1 (April 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! - Linux: exec command used in startup scripts 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 VERSION 9.0 (March 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 VERSION 8.6.7 (September 21, 2017) ------------------------------------- Bug fixes, performance (fn:tail, static typing in group by clauses). VERSION 8.6.6 (August 24, 2017) ---------------------------------------- Bug fixes (map:merge, where clauses), performance tweaks. VERSION 8.6.5 (July 28, 2017) ------------------------------------------ Various performance tweaks, minor fixes. VERSION 8.6.4 (May 18, 2017) ------------------------------------------- Bug fixes (one critical), various performance tweaks. VERSION 8.6.3 (April 6, 2017) ------------------------------------------ Bug fixes, performance enhancements. VERSION 8.6.2 (March 13, 2017) ----------------------------------------- Minor bug fixes and performance tweaks. VERSION 8.6.1 (February 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 VERSION 8.6 (January 24, 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 VERSION 8.5.3 (August 15, 2016) ---------------------------------------- Minor bug fixes, improved thread-safety. VERSION 8.5.2 (July 21, 2016) ------------------------------------------ Minor bug fixes and performance tweaks. VERSION 8.5.1 (July 11, 2016) ------------------------------------------ Bug fixes, experimental 8.6 features. VERSION 8.5 (July 4, 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 VERSION 8.4.4 (May 3, 2016) -------------------------------------------- Minor bug fixes and tweaks. VERSION 8.4.3 (April 13, 2016) ----------------------------------------- Minor bug fixes, experimental 8.5 features. VERSION 8.4.2 (March 30, 2016) ----------------------------------------- Minor bug fixes, performance tweaks, experimental 8.5 features. VERSION 8.4.1 (March 3, 2016) ------------------------------------------ Minor bug fixes, experimental support for 8.5 features. VERSION 8.4 (February 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 VERSION 8.3.1 (October 29, 2015) --------------------------------------- - XQuery 3.1: alignments with latest spec - Bug fixes (GUI errors, XPath optimizations) VERSION 8.3 (September 23, 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 VERSION 8.2.3 (July 14, 2015) ------------------------------------------ Bug fixes (DBA, admin:write-log; namespaces) VERSION 8.2.2 (July 6, 2015) ------------------------------------------- Various bug fixes (all minor) VERSION 8.2.1 (June 9, 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 VERSION 8.2 (May 21, 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) VERSION 8.1.1 (April 16, 2015) ----------------------------------------- Various bug fixes (all minor) VERSION 8.1 (March 28, 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 VERSION 8.0.3 (March 19, 2015) ----------------------------------------- Various bug fixes (all minor) VERSION 8.0.2 (March 9, 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 VERSION 8.0.1 (February 22, 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 VERSION 8.0 (February 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: %basex:inline, %basex: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 VERSION 7.9 (June 27, 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 VERSION 7.8.2 (April 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 VERSION 7.8.1 (February 26, 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 VERSION 7.8 (February 12, 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!) VERSION 7.7.2 (October 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 '<' are interpreted as XQuery INDEXING - bug fixed in updatable index structure VERSION 7.7.1 (September 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 VERSION 7.7 (August 7, 2013) ------------------------------------------- XQUERY - Our XQuery 3.0 support is now complete! http://docs.basex.org/wiki/XQuery_3.0 - the Unit Module allows standardized testing of XQuery applications http://docs.basex.org/wiki/Unit_Module - the Streaming Module speeds up operations on large files http://docs.basex.org/wiki/Streaming_Module - the Inspection Module provides reflection and documentation features http://docs.basex.org/wiki/Inspection_Module - we have added support for XQuery collations http://docs.basex.org/wiki/Full-Text#Collations - we have extended the Database, Archive, File and other Modules http://docs.basex.org/wiki/Module_Library COMMANDS - database names have got more flexible http://docs.basex.org/wiki/Commands#Valid_Names - we have new options for simplifying the creation of large databases http://docs.basex.org/wiki/Options WEB/HTTP SERVICES - WebDAV has been enriched with locking features (sponsored feature!) http://docs.basex.org/wiki/WebDAV#Locking - RESTXQ has been improved and extended: http://docs.basex.org/wiki/RESTXQ VERSION 7.6 (February 5, 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 VERSION 7.5 (December 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 VERSION 7.3 (June 18, 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/ VERSION 7.2.1 (April 27, 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 VERSION 7.2 (March 24, 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 VERSION 7.1.1 (February 19, 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 VERSION 7.1 (February 8, 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 CREATEFILTER - 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! VERSION 7.0.2 (November 11, 2011) -------------------------------------- FULL TEXT - Stemming support for Japanese text corpora (thanks to Toshio HIRAI!) STARTUP - Updated start scripts (thanks to Ralf Jung!) - System property "org.basex.path" added to specify project's home directory (thanks to malamut2!) XQUERY - Numerous minor XQuery 3.0 enhancements and fixes - Fix for db:optimize() calls (thanks to Martin Hillert!) STORAGE - Fix to retain newly introduced namespaces (thanks to Laurent Chevalier!) USERS - Default privileges for new users set to "none" (thanks to Pascal Heus!) REST - query base URI for evaluated queries is now $HTTPPATH (thanks to Florent Georges!) VERSION 7.0.1 (October 23, 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 VERSION 7.0 (October 14, 2010) TEI EDITION ----------------------------- 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 VERSION 6.7.1 (July 28, 2011) BALISAGE EDITION ------------------------- 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 VERSION 6.7 (June 30, 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 VERSION 6.6.2 (May 13, 2011) LINUXTAG RELEASE -------------------------- API: [ADD] JAX-RX API now supports basic user authentication: http://docs.basex.org/wiki/JAX-RX_API [ADD] The COPY creates identical database copies: http://docs.basex.org/wiki/Commands#COPY [ADD] The OPTIMIZE ALL command minimizes all database structures: http://docs.basex.org/wiki/Commands#OPTIMIZE XQuery: [ADD] map expressions and functions added: http://docs.basex.org/wiki/Map_Functions [MOD] File module aligned with latest EXPath specification: http://docs.basex.org/wiki/File_Functions [MOD] Speedup of full-text queries with keyword lists. Example: $x contains text { 'a', 'b', 'c', ...} [MOD] XQuery Update optimizations for replacing nodes; tree-aware updates. [MOD] XQuery optimizations to avoid materialization of sequences. GUI: [ADD] Multiple editor tabs added [ADD] Database management: copy databases Core: [ADD] Internal XML parser: HTML entities added [FIX] Glob syntax: support for multiple file suffixes VERSION 6.6.1 (March 30, 2011) XML PRAGUE RELEASE ---------------------- XQuery: [ADD] index rewritings added for .../text()[. = ..] syntax [ADD] optimizations of mixed axis path expressions, e.g.: //x/name() [MOD] index rewritings on collections fixed and generalized [MOD] faster evaluation of filters with pos. predicates, e.g.: $x[5] [FIX] fixed relocation of let clauses in GFLWOR expressions [FIX] trace function returned wrong original results [FIX] variables in catch clauses were discarded [FIX] HOF optimizations and fixes GUI: [FIX] language option (for Japanese, German, etc. interface) fixed VERSION 6.6 (March 23, 2011) ------------------------------------------- [ADD] XQuery 3.0: Full support of Higher Order Functions (dynamic function invocation, inlined functions, etc.) [ADD] XQuery: Full support of the EXPath ZIP and HTTP modules [MOD] XQuery Update: numerous speedups, memory consumption reduced [ADD] Commands: COPY command added to clone existing databases [ADD] CSV/Test importers revised, ENCODING option added to CSV/Text parsers [ADD] XQuery utility functions added: util:format(), util:crc32(), util:md5(), util:sha1(), etc. [ADD] XQuery 3.0: context item and decimal-format declarations [FIX] Storage and update features revised, bugs fixed VERSION 6.5 (November 17, 2010) ---------------------------------------- [ADD] Commands: LIST extended by optional database [path] argument [ADD] JAX-RX: full database path is now used to list documents within a database. Use "query" parameter to show document contents [ADD] JAX-RX: bind external variables to query and run parameter [ADD] Windows Installer: creates startmenu entries, sets file associations and path environment entries [ADD] GUI/Create: support different input formats: XML, HTML, Text, .. [MOD] Commands: Allow hierarchical paths in OPEN command [MOD] APIs: UTF-8 encoding added to Java binding [FIX] Storage: text decompression synchronized [FIX] XQuery: context choice in filter predicates [MOD] JavaDoc: package.html files added and updated