Hi Genneva,

> Seems like db:store should be in the same as db:replace ?

I didn’t get this?

Wiki edits are welcome. Would you be interested in revising the documentation?

Christian



On Fri, May 27, 2016 at 8:35 AM, Wang, Genneva <genneva.w...@sap.com> wrote:
> Thanks Christian,
>
> I tried it out so it does seemed to behave the way you just described. So the 
> documentation (page 198~199 http://files.basex.org/releases/8.4/BaseX84.pdf, 
> also extracted below seems to be misleading.)
>
> Seems like db:store should be in the same as db:replace ?
>
> db:replace
> Signatures db:replace($db as xs:string, $path as xs:string, $input as item())
> as empty-sequence() db:replace($db as xs:string, $path as xs:string,
> $input as item(), $options as map(*)) as empty-sequence()
> Summary Replaces a resource, specified by $path, in the database $db with the 
> contents of $input, or
> adds it as a new resource:
>
>
> db:store
> Signatures db:store($db as xs:string, $path as xs:string, $input as item())
> as empty-sequence()
> Summary Stores a binary resource specified by $input in the database $db and 
> the location specified by
> $path.
>
>
> Thanks!
> Regards,
> -Genneva
>
>
>
>
>
>
>
>
> On 5/26/16, 11:10 PM, "Christian Grün" <christian.gr...@gmail.com> wrote:
>
>>Hi Genneva,
>>
>>In XQuery Update, it does not matter in which order you supply update
>>commands (see [1]). The delete can be omitted, as existing binary
>>resources will be replaced (so in a way STORE is more similar to
>>REPLACE).
>>
>>Cheers,
>>Christian
>>
>>[1] http://docs.basex.org/wiki/XQuery_Update#Pending_Update_List
>>
>>
>>
>>On Fri, May 27, 2016 at 2:05 AM, Wang, Genneva <genneva.w...@sap.com> wrote:
>>> Hi Basex Guru’s
>>>
>>> Thanks! So I’ve been trying few things. I think the bath insert works, for
>>> both db:add and db:store. So right now I’m trying the delete and store
>>> together.
>>>
>>> I have:
>>>
>>> db:delete('dbTestRepo', 'testdir/someresource.xml'),
>>> db:store('dbTestRepo', 'testdir/someresource.xml',
>>> file:read-binary('/Users/i843335/work/extensibility/dbtest/buyer2.json’))
>>>
>>> It am assuming that in this case, it should do delete first (if the path
>>> exist), and then do the store to the same path. However, I find that
>>> regardless of whether the existing resource exist for the same resource,
>>> both are not being committed.
>>>
>>> It does seem that the results have 2 updated item, but nothing gets
>>> persisted when I do db:list(‘dbTestRepo’).
>>>
>>> Is there something that I have missed ? Thanks.
>>>
>>> Regards,
>>> -Genneva
>>>
>>> From: <basex-talk-boun...@mailman.uni-konstanz.de> on behalf of Dirk Kirsten
>>> <d...@basex.org>
>>> Date: Thursday, May 19, 2016 at 11:59 PM
>>> To: "basex-talk@mailman.uni-konstanz.de"
>>> <basex-talk@mailman.uni-konstanz.de>
>>> Subject: Re: [basex-talk] multiple inserts/update/deletes in single
>>> transaction
>>>
>>> Hello Genneva,
>>>
>>> this is expected behaviour. BaseX script executed each command separately.
>>> This is by design and required by the nature of XQuery (Update), which by
>>> design always executes as one transaction - Which can be difficult do deal
>>> with if you have a large amount of data and have to e.g. hold it in memory.
>>>
>>> Each XQuery runs in one single transaction, so you can simply add your
>>> documents via XQuery, e.g.
>>>
>>> db:add("DB", "embedded7.xml"),
>>> db:add("DB", "embedded8.xml")
>>>
>>> Cheers
>>>
>>> Dirk
>>>
>>>
>>> On 05/19/2016 08:11 PM, Wang, Genneva wrote:
>>>
>>> Hi
>>>
>>> I’m trying to figure out whether batched transaction would work for basex,
>>> and I came across the RUN and EXECUTE command specified in
>>> http://files.basex.org/releases/8.4/BaseX84.pdf page 58-59.  The document
>>> mentioned following in the summary section:
>>>
>>> RUN:Evaluates the contents of file as XQuery expression. If the file ends
>>> with the suffix .bxs, the file content will be evaluated as command script.
>>> This command can be used to run several commands in a single transaction
>>> EXECUTE: Evaluates the specified input as command script. This command can
>>> be used to run several commands in a single transaction.
>>>
>>> I’ve tried this myself
>>> For example, I’d like to know if I batch 2 inserts, if one fails, would both
>>> inserts get rollback.
>>>
>>> I’m using a simple .bxs (attached and also listed below for your
>>> convenience) and run the execute using GUI.
>>>
>>> OPEN test
>>> ADD TO embedded7.xml <root>embedded</root>
>>> ADD TO embedded8.xml <root>embedded
>>> CLOSE
>>>
>>> The second ADD (embedded8.xml) is  not a valid xml format so I’m expecting
>>> it to fail, and rollback both files if any of them have already added. But
>>> after executing this script, I’m seeing embedded7.xml have been added.
>>>
>>> Would you be able to confirm if this is the expected behavior ? If so,  is
>>> there anyway that I can batch multiple inserts and ensures that these batch
>>> of files can be committed at the same time, and rollback  all together if
>>> any of the file has an error ?
>>>
>>> Thank you very much for your help.
>>>
>>>
>>> --
>>> Dirk Kirsten, BaseX GmbH, http://basexgmbh.de
>>> |-- Firmensitz: Blarerstrasse 56, 78462 Konstanz
>>> |-- Registergericht Freiburg, HRB: 708285, Geschäftsführer:
>>> |   Dr. Christian Grün, Dr. Alexander Holupirek, Michael Seiferle
>>> `-- Phone: 0049 7531 91 68 276, Fax: 0049 7531 20 05 22

Reply via email to