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
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
- 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/
- Our value indexes now support string-based range queries:
http://docs.basex.org/wiki/Indexes#Value_Indexes
A big thank you to our sponsors who made this possible!
- 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
- Simplified invocation of Java code from XQuery
http://docs.basex.org/wiki/Java_Bindings
- Full support for the XQuery 3.0 Regular Expressions syntax:
http://www.w3.org/TR/xpath-functions-30/#regex-syntax
- Updating functions can now return values:
http://docs.basex.org/wiki/Database_Module#db:output
- Unified handling of document and database URIs:
http://docs.basex.org/wiki/Databases#Access_Resources
- Pinning of opened database replaced by filesystem locking:
http://docs.basex.org/wiki/Transaction_Management#Locking
- REST, RESTXQ, WebDav: concurrency issues fixed
- new restxq api, introduced by adam retterGUI:
- rest: failed query now returns line/column position
- client apis: commands added for binding context items,
and checking if a query performsn updates
- performance: limit number of displayed hits - fixed editor highlightingCLIENT/SERVER:
- introduce timeout for rest and other apisOPTIONS:
- verify permissions when using local sessions
- improved logging of error output
- new options for configuring proxy serversXQUERY:
- advanced TagSoup options added for importing HTML files
- ignore TIMEOUT for admin operations
- hof:top-k-with(..) and hof:top-k-by(..) return the top k items in a sequenceCOMMANDS:
- 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()
- fixed export of pure RAW dataCORE:
- permissions changed for REPO DELETE, REPO INSTALL and REPOLIST
- remove 'path' argument from CREATE INDEX and DROP INDEX
- pin opened databases to avoid concurrent updates with multiple BaseX instancesCOMMAND-LINE:
- added readline support for Linux-/Unix-based terminalsSERIALIZATION:
- saving history
- HTML5 support addedMISCELLANEOUS:
- new 'separator' option to specify the character to be used as item separator
- fixed WAR/web archive issues
- limit query exceptions to file names for non-admin users
- fixed Path Summary staying out-of-date issue
- new "Package" dialog: list, install and delete XQuery PackagesCommand-Line:
- "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
- new option -L: add trailing newline after query resultREST:
- new option -C: execute commands from batch script
- new "option" parameter: set options before executing requestFull-Text:
- Indonesian Stemmer (thanks Andria Arisal!)IO:
- faster read/write access to byte arrays
- improved document management: hierarchical view of databases resourceREST
- easier index creation/removal and database optimization
- JSON/JsonML parser added
- editor: updated and reopened files are reverted from disk
- automatic XML conversion of popular content types (JSON/JsonML, CSV, HTML)XQUERY
- new index module for directly accessing database index structuresCOMMAND-LINE
- 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
- multiple query files and -c/-i/-q flags can now be specifiedINDEXING
- ID/Pre mapping, incremental indexing of value index structuresOPTIONS
- document index fix: correct replacement of existing documents
- document index: faster updates
- ADDRAW: add new resources as raw files if not filtered by CREATEFILTLERCLIENT/SERVER
- 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
- improved log output if query iterator is usedSERIALIZATION
- new ActionScript API (thanks to Manfred Knobloch!)
- a project specific "newline" parameter specifies the type of newline to be usedCOMMANDS
- modified KILL command accepts IP:port combination to specify targetTRANSLATIONS
- Bahasa Indonesian: thanks to Andria Arisal!
- Mongolian: thanks to Tuguldur Jamiyansharav!
- Stemming support for Japanese text corporaSTARTUP
(thanks to Toshio HIRAI!)
- Updated start scripts (thanks to Ralf Jung!)XQUERY
- System property "org.basex.path" added to specify
project's home directory (thanks to malamut2!)
- Numerous minor XQuery 3.0 enhancements and fixesSTORAGE
- Fix for db:optimize() calls (thanks to Martin Hillert!)
- Fix to retain newly introduced namespacesUSERS
(thanks to Laurent Chevalier!)
- Default privileges for new users set to "none"REST
(thanks to Pascal Heus!)
- query base URI for evaluated queries is now $HTTPPATH
(thanks to Florent Georges!)
- Windows installer was updated to support latest featuresXQUERY:
- 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
- much faster execution of count() when applied to opened databasesSERVER:
- Flag -c connects to an existing database serverAPI:
- 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
- Ruby, Python, PHP, Java: clients updated
- Native and tightly integrated REST implementation replaces JAXRXXQuery:
- WebDAV provides a file system like access to BaseX databases
- Parsing and serializing JSON documentsSERVER:
- 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(),
- BaseX HTTP Server activates the REST and WebDAV servicesCOMMANDS:
- ITER command returns all results in one go and the client
handles the iterative execution
- FLUSH command to write all database buffers to diskOPTIONS:
- STORE command to store raw data in a database
- RETRIEVE command to get raw data from the database
- modified ADD command
- SERVERHOST: to specify a server
- KEEPALIVE: optional timeout to close inactive client sessions
- AUTOFLUSH database buffers
- QUERYPATH: path to executed query
- New database functions for adding, deleting, renaming,Storage:
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
- Use ADDARCHIVES to parse files within archivesGUI:
- 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
- "Manage Database" dialog now supports operations onClient/Server:
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
- Delay clients that repeatedly fail to login
- All remaining plain-text password operations now use
MD5 to send and log passwords
[ADD] Native EXPath Packaging system support:XQuery:
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
[ADD] New database and full-text functions:Commands:
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
[ADD] Glob syntax added 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
[ADD] JAX-RX API now supports basic user authentication:XQuery:
http://docs.basex.org/wiki/JAX-RX_API
[ADD] The COPY command 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
[ADD] map expressions and functions added:GUI:
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.
[ADD] Multiple editor tabs addedCore:
[ADD] Database management: copy databases
[ADD] Internal XML parser: HTML entities added
[FIX] Glob syntax: support for multiple file suffixes
[ADD] index rewritings added for .../text()[. = ..] syntaxGUI:
[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
[FIX] language option (for Japanese, German, etc. interface) fixed
[ADD] XQuery 3.0: Full support of Higher Order Functions
(dynamic function invocation, inlined functions, etc.)
[ADD] XQuery: Support of the EXPath ZIP Module
[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
[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
[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
[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
[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
[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
[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, ..)
[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: <variable/> and <output/> 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
[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; thanks to Huib Verweij!
[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
[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
[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] 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(), ...
ยป Download