I thought you say something like this :-) One thing I don't understand is how the existing facilities handle the current looseness of sequentiality.
For example I can mix Xquery updates and document db:replace or document db:add or I could use the http module to do a REST interface create request in the middle of a larger Xquery script On Wed, May 23, 2012 at 1:59 PM, Andreas Weiler < [email protected]> wrote: > You still could use the Java Bindings. > > -- Andreas > > Am 23.05.2012 um 14:23 schrieb Christian Grün: > > >> I sometimes find myself, in code, wanting to create a database, or more > >> specifically test if a database exists and create it if does not. The > >> database module appears not have functions to create (or delete > databases). > >> Is this a deliberate design decision? > > > > Indeed it is; but we are still looking for a good solution to fill > > this obvious gap. Even if databases are pretty light-weight entities > > in BaseX, the creation of a new database within an XQuery expression > > may trigger numerous side effects related to other database > > operations. The main reason for that is the functional nature of > > XQuery and the "pending update list" of XQuery Update: all updating > > commands will become effective after the query itself has been > > evaluated. However, commands like db:add() or db:delete() commands > > will (currently) only end up on the list if the addressed database > > already exists. Another example: db:create() could overwrite a > > database that already existed, and some commands would possibly refer > > to the old instance, while other updating commands would access the > > new one. > > > > One general solution to this challenge would be the XQuery Scripting > > Extension [1], which allows you to execute commands sequentially > > (i.e., in an imperative manner). XQSE is definitely on our list, but > > which will require considerable time to realize -- mainly because a > > straightforward implementation would sabotage many of the existing > > functional optimizations in the code (some of the functional and > > imperative optimizations are even diametrical). > > > > In summary, I cannot give a satifsying answer yet except for the > > advice to use the BaseX commands, REST or XQJ (via > > XQExpression.executeCommand()), but I'm very open to ideas and > > proposals how to tackle this challenge. > > > > Christian > > > > [1] http://www.w3.org/TR/xquery-sx-10/ > > _______________________________________________ > > BaseX-Talk mailing list > > [email protected] > > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk > >
_______________________________________________ BaseX-Talk mailing list [email protected] https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

