Main Page » Changelog
Changelog
The following features have been added, updated, or removed in BaseX 13:
Startup
- Updated:
Switched to Java 21
Graphical User Interface
- Updated:
Search & Replace: count hits, improved interaction, scroll bar integration. - Updated:
Panel sizes and arrangement are preserved across restarts. - Updated:
Faster rendering of the editor and text panels. - Added:
Support for the FlatLaf library. - Removed:
Fullscreen mode.
Shortcuts
- Updated:
Shortcuts were updated.
Web Application
- Updated:
BaseX is now based on the Jetty EE10 environment (Servlet 6.0). - Updated:
No database server is started anymore by default (see HTTPLOCAL).
Command-Line Options
- Added:
-Lto start a database server instance in addition (HTTP server).
Commands
- Updated:
PUT, BINARY PUT: Replace or ignore new resources.
Options
- Removed:
MIXUPDATES: Usejob:executeto run updating and non-updating queries side by side. - Added:
AUTHALGORITHMS: Configure the password algorithms for which hashes are stored. Thedigesthash is no longer stored by default. - Added:
CACHEMAX: Maximum number of entries stored in a cache. - Added:
REPLACE: PUT: replace or ignore existing resources. - Added:
FNXMLTRUSTED: Default for thetrustedoption of the XML parsing functions. - Updated:
INTPARSE: Improved DTD support. - Updated:
HTTPLOCAL: New default:true.
XQuery 4.0
- Added:
Trace Clause: Emit diagnostic output per tuple. Example: for $i in 1 to 3 trace $i return $i. - Added:
JNodes: XPath navigation on map and array structures. Example: json-doc(…)//city. - Added:
Unicode Operators: ×(U+00D7) and÷(U+00F7). - Added:
Axes: additional axes that include the context node, e.g. preceding-or-self. - Added:
Destructuring: Assign components of sequences, arrays and maps to variables - Added:
Node Comparisons: New operators and aliases. - Updated:
Default Element Namespace: new keyword fixedand special value"##any". - Updated:
QName literals: QName literals with prefix. - Updated:
Function Declarations: localnamespace prefix can be omitted. - Updated:
Dynamic Function Calls: Dynamic evaluation of function sequences. - Updated:
Methods: Annotation %methodreplaced by=?>operator - Updated:
Map Constructors: Syntax generalized to allow arbitrary expressions: { $map-entry } - Updated:
Record types: A record has a fixed set of fields. Optional fields ( field?) and the wildcard (*) were removed, field access is strict, and subtyping is width-invariant. - Added:
Record declarations: +:=operator for updating record values. Example:$record +:= { 'key': 'value' }. - Deleted:
Map and array filter was removed. - Updated:
Casting: Casting from strings follows XSD 1.1; casts to xs:anyURInever fail.
Invisible XML
- Updated:
Now using Markup Blitz 1.11.
Functions
- Added:
Geo Module re-added with GML 3 support.
Array Functions
- Added:
array:sort-by,array:sort-with. - Removed:
array:join:$separatorparameter.
Binary Functions
- Added:
bin:rotate: New function for cyclic bit rotation. - Added:
bin:is-bit-set: New function for testing a single bit. - Added:
bin:set-bits: New function for setting or clearing bits. - Added:
bin:count-bits-set: New function for counting one-bits.
Cache Functions
- Added:
New module.
CSV Functions
- Added:
Options: comment-markeroption. - Updated:
Options: Support for backslash-escape sequences. - Updated:
Options: field-delimiterrenamed back toseparator. - Removed:
Options: row-delimiter(rows are always delimited by a newline).
Database Functions
- Updated:
db:create,db:add: support added for storing binary and value resources. - Updated:
db:add: aligned withdb:create, accepts multiple inputs. - Updated:
db:put,db:put-binary,db:put-value: replace or ignore new resources. - Updated:
db:put-binary:$inputrestricted to binary items and strings (strings are interpreted as URIs). - Updated:
db:get,db:text:$databasecan be addressed by a compact node.
File Functions
- Updated:
file:delete: Non-existing paths are ignored. - Updated:
file:size: New$recursiveparameter. - Updated:
file:read-text,file:read-text-lines: New$optionsparameter. - Removed:
file:read-text-lines:$offsetand$lengthparameters removed.
Full-Text Functions
- Updated:
Database Functions: REBUILD REQUIRED - Updated:
ft:tokens: newfuzzyanderrorsoptions for looking up index tokens with a bounded number of errors. - Updated:
Token folding: characters that denote multiple letters are now expanded ( ß→ss,æ→ae,þ→th, …), and missing and incorrect mappings were fixed. Existing full-text indexes must be rebuilt withOPTIMIZE ALL(see Indexes).
Geo Functions
- Added:
Module re-added with GML 3 support.
HTTP Client Functions
- Updated:
http:send-request: binary response bodies of GET requests are returned as lazy items; file-based request payloads are streamed.
Job Functions
- Added:
job:next - Updated:
job:eval,job:list-details: Cron syntax added. - Updated:
job:eval: Support for daylight saving changes. - Updated:
job:execute: Raisedeadlockerror if execution would deadlock the calling query.
Cron Syntax
- Added:
New article added.
JSON Functions
- Added:
Serialization option escape-solidus. - Updated:
number-parserwas replaced withnumber-format.
Map Functions
- Updated:
map:filter,map:for-each: Positional callback argument added. - Removed:
map:keys-where,map:of-pairs,map:pairs.
Math Functions
- Added:
math:exp10.
Request Functions
- Updated:
Functions can also be called in WebSocket handlers and asynchronous jobs.
SQL Functions
- Added:
sql:execute-batch: executes a prepared statement over multiple parameter sets. - Updated:
sql:execute,sql:prepare:generated-keysoption added. - Updated:
sql:execute,sql:execute-prepared:nulloption added. - Updated:
sql:execute-prepared: parameters can be supplied as an array.
Standard Functions
- Added:
fn:atomic-type-annotation,fn:build-dateTime,fn:build-uri,fn:element-to-map-plan,fn:element-to-map,fn:graphemes,fn:jkey,fn:jposition,fn:jtree,fn:jvalue,fn:matching-segments,fn:node-type-annotation,fn:pad-string,fn:parts-of-dateTime,fn:schema-type,fn:system-properties,fn:transform,fn:unix-dateTime,fn:xsd-validator. - Added:
trustedoption forfn:doc,fn:doc-availableandfn:parse-xml. - Updated:
fn:insert-separator - Updated:
fn:deep-equal: Thedebugoption outputs the items that were found to be different. - Removed:
entity-expansion-limitandallow-external-entitiesoptions;fn:intersperseandfn:sequence-joinin favor offn:insert-separator. - Removed:
fn:deep-equal: Optionsfalse-on-errorandnormalize-space.
Store Functions
- Added:
store:update,store:close - Updated:
All opened stores are now kept in main memory.
String Functions
- Removed:
string:formatin favor offn:pad-string. - Added:
string:closest,string:levenshtein-distance,string:partial-ratio,string:token-sort-ratio,string:token-set-ratio,string:ngram-similarity,string:ngrams - Updated:
The similarity functions and string:ngramsadopt the$optionsofft:tokenize(case,diacritics,stemming,language). - Updated:
string:soundex: a string without letters yields an empty string (before:0000).
Unit Functions
- Added:
unit:timeout: abort tests that exceed a time limit. - Updated:
unit:test: multiple expected error codes can be specified.
Web Functions
- Updated:
web:error:$messagecan be an arbitrary item; serialization$optionsadded. - Removed:
web:forward: server-side forwarding was dropped. - Updated:
web:response-header:messageattribute removed (deprecated Servlet API feature). - Updated:
web:redirect: Status parameter added.
WebSocket Functions
- Added:
ws:ping - Updated:
ws:close: optional close status and reason.
XQuery Functions
- Added:
xquery:for-each: New function for parallel iteration. - Added:
xquery:fork-any: New function returning the first available result. - Added:
xquery:reduce: New function for parallel aggregation. - Updated:
xquery:fork-join:reportandtimeoutoptions added. - Updated:
xquery:eval: Allow decimal places for timeout value.
Updates
- Removed:
MIXUPDATESoption. Usejob:executeto combine updating and non-updating operations.
Indexes
- Updated:
Full-Text Index: Faster fuzzy querying. - Updated:
Full-Text Index: REBUILD REQUIRED. Token normalization was standardized. - Updated:
Text Index, Attribute Index: integer comparisons (equality and ranges) on integer-typed nodes are rewritten for value-index access.
Repository
- Updated:
Java classes are cached after the first import.
XQuery Extensions
- Added:
Debugging: summary of how trace output is handled.
Serialization
- Added:
Serialization parameters escape-solidus,json-lines,indent-unit,line-ending. - Updated:
indent-attributesis now a standard serialization parameter. - Updated:
indents,newlineandtabulatorare superseded byindent-unitandline-ending.
RESTXQ
- Added:
HTTP Methods: Support for QUERYmethod added. - Updated:
Paths: %rest:pathcan be specified more than once. - Updated:
Scope Error Handlers: %rest:errorcan be combined with%rest:path. - Updated:
Default Methods: Functions with method annotations are preferred. - Removed:
Server-side forwarding ( <rest:forward>element andweb:forwardfunction) was dropped.
Permissions
- Updated:
Security functions are also invoked for WebSocket handshakes.
WebSockets
- Added:
Permission checks for WebSocket handshakes. - Added:
Path templates in WebSocket annotations. - Added:
%ws:subprotocolannotation: sub-protocol negotiation. - Updated:
%ws:closeannotation: close status and reason can be bound to variables. - Removed:
%ws:header-paramannotation (use the Request Functions instead). - Updated:
All Request Functions can be used in WebSocket handlers.
REST
- Added:
QUERY Method: Evaluate the request body as XQuery expression. - Added:
PUT Method: Replace or ignore new resources.
Clients
- Updated:
Digest replaced with salted authentication. - Removed:
Support for cram-md5 authentication, and the outdated clients.
Server Protocol
- Updated:
Digest replaced with salted authentication - Removed:
Client-side fallback to cram-md5 authentication
Parsers
- Updated:
If no parser is available, the HTML string will be returned as text. - Added:
Validator.nu option fail-on-error.
User Management
- Added:
Password algorithms can be configured via AUTHALGORITHMS, including PBKDF2 encryption. - Updated:
The unsalted digesthash is no longer stored by default.
⚡Generated with XQuery