Hi,
I'm a bit more familiar with a SQL database like Oracle than BaseX, though
I did cut my teeth on MarkLogic. MarkLogic from what I've read seems to
handle updates differently than BaseX. I'm working through examples I
found from the website, but wanted to adapt them for my own understanding.
I believe every time I have the copy keyword, it's creating a copy of
variable and applies one or more modfiications to that copy. Because the
original isn't changed, it's called "non-updating". For instance
copy $c := <peace/>
modify (
insert node element german { 'Friede'} into $c,
insert node attribute guid {'asdf'} into $c
)
return $c
the original node <peace/>, even if it were a variable would not be touched.
However,
insert node element german { 'Friede'} into <peace/>
Takes the <peace/> element, modifies it and returns the modified form. Or
at least it does not complain. I ran SET WRITEBACK on and set MIXEDUPDATES
before starting these examples.
Unfortunately, the insert above just returns an empty set. I *think* it
puts it into some PUL list, not unlike a set of transactions to be
applied. These modifications seem to be invisible to subsequent queries,
even in the same session (unlike a SQL database wherein the same session
would see the modifications).
How can I get these changes flushed so I can see and use the modified
result?
Separately, if I do haver an insert or some other modification, what's the
syntax if I wanted to add a for, let order by or other FLOWR keyword?
Kind Regards,
Ben Pracht
919.809.2439
ben.pracht(a)gmail.com