I'm not the maximum expert on this because I'm only a user. So maybe
Christian could correct me.
The PUL is actually an implementation detail. It's not something you
access explicitly. Thus no. There is no explicit mechanism.
The behaviour (START TRANS, do smthg, COMMIT) is implicit in each and
every XQuery script that the compiler recognizes to be "updating"
(a.k.a. performing database modifications).
Even if it accesses multiple databases. So to me this looks as being
transactional in nature.
For instance when I call a RestXQ service which stores a document in one
DB and then updates a record in another one and this second operation
raises an error causing the RestXQ to quit then both the operations will
be canceled automatically. This is very different from, for example,
MongoDB.
Of course this means that there are complex locking strategies which you
have to pay attention to when performing particularly complex operations
but this is another point.
I hoffe alles goht guet i de Schwiz (hm ... Schwitzerduetsch is hard to
write)
M.
On 16/07/20 17:55, Reto Peter wrote:
Hi Marco
Thanks for answering
But that means Basex is NOT supporting database transactions
Or is it possible to implement real transactions (START TRANS, do
something, COMMIT trans) with that PUL or something?
Reto
*From:*BaseX-Talk [mailto:basex-talk-boun...@mailman.uni-konstanz.de]
*On Behalf Of *Marco Lettere
*Sent:* 16 July 2020 17:46
*To:* basex-talk@mailman.uni-konstanz.de
*Subject:* Re: [basex-talk] Transaction Support
Hi Reto,
AFAIK Basex is transactional in the sense that whenever you start a
sequence of commands or an XQuery script, all the "updating
operations" that modify the database are always stored in a PUL (a
list of potential updates).
Only when the script terminates all the operations on the DB are
effectively committed.
There is no explicit rollback operation.
Regards,
Marco.
On 16/07/20 17:40, Reto Peter wrote:
I am evaluating BaseX for my XML project.
I need transaction support like
-Start transaction
-Run queries (read, write, update)
-Commit or rollback transaction
When I see the documentation, it lists Transaction Manager. But
when I look at the details, I cannot find anything like that.
Anyone can explain me how is the support, or is there an add-on or
planned something?
Best regards
Reto, Frauenfeld, Schweiz