Could you attach one of the queries that you mentioned in your first question (i.e., that didn’t work for you)? We might then be able to resolve why $o2 seems to take longer than you would expect it to take.
In general, it’s recommendable not to bind code to variables if the expression does not yield any results. I would probably rewrite your code as follows: let $dir := "/Users/mycomputer/prova/" return ( file:create-dir($dir), file:write($dir || "file1.xml", "ciao"), file:write($dir || "file2.xml", file:read-text($dir || "file1.xml")) ) As XQuery is a function language, it would be allowed for a processor to run the second write call before the first. However, we enforce the evaluation of the original expression if expressions are non-deterministic or side-effecting (which is the case for all of your function calls). On Tue, Mar 12, 2019 at 11:44 AM Giuseppe G. A. Celano <cel...@informatik.uni-leipzig.de> wrote: > > let $o := file:create-dir("/Users/mycomputer/prova") > let $o2 := file:write("/Users/mycomputer/prova/file1.xml", "ciao") > let $o3 := file:write("/Users/mycomputer/prova/file2.xml", > file:read-text("/Users/mycomputer/prova/file1.xml")) > return > ($o, $o2, $o3) > > This actually works. In my real example the writing of $o2 requires e few > seconds. It might be that $o3 is evaluated while $o2 is still running? > > Dr. Giuseppe G. A. Celano > DFG-project leader > Universität Leipzig > Institute of Computer Science, NLP > Augustusplatz 10 > Tel: +4934132223 > 04109 Leipzig > Deutschland > > E-mail: cel...@informatik.uni-leipzig.de > Web site 1: http://asv.informatik.uni-leipzig.de/en/staff/Giuseppe_Celano > Web site 2: https://sites.google.com/site/giuseppegacelano/ > > On Mar 12, 2019, at 11:27 AM, Michael Seiferle <m...@basex.org> wrote: > > Hi Guiseppe, > > The following pattern is supposed to / does work: > > file:write("1.txt", "Written to 1.txt"), > file:write("2.txt", file:read-text("1.txt")), > "Read from 2.txt: " || file:read-text('2.txt') > > > Could you maybe elaborate a bit more on your code? > > Best from Konstanz > > Michael > > Am 12.03.2019 um 11:19 schrieb Giuseppe G. A. Celano > <cel...@informatik.uni-leipzig.de>: > > Hi > > I wrote a single script which should do: write a file -> open this file -> > write another different file. I put the write expressions in the right > sequence, but it seems that the second one cannot happen because the file > created by the first write function has not yet been created at the time the > second function is invoked. Does anyone have a suggestion about this? Thanks. > > Best, > Giuseppe > > >