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)
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.