forked from BaseXdb/basex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
629 lines (502 loc) · 23.8 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
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