Follow-up, some details:

* Create large (5GB) DB in BaseX GUI
* Copy DB folder manually to another server
* Optimize DB
* The first db:replace() via RESTXQ creates a second file with the same 
base-uri()
* The second db:replace() via RESTXQ replaces the earlier created second file 
(duplicate)

I cannot reproduce with a small newly created db.
The initial database was created with BaseX 9.0.2, update operation runs with 
BaseX 9.2.1

Should I try to optimize the database with 9.1.2 before copying and try again? 
Perhaps this is a database-structure related issue?

> -----Ursprüngliche Nachricht-----
> Von: Christian Grün [mailto:christian.gr...@gmail.com]
> Gesendet: Montag, 29. April 2019 16:00
> An: Zimmel, Daniel
> Cc: BaseX
> Betreff: Re: [basex-talk] db:replace() in DBA resulting in duplicates
> 
> > Still, when I browse the database, the /DB/path only exists once (as far as 
> > I can
> see from the sorting), but querying is giving me two documents, according to
> db:path() living in the same path.
> > This should never happen, should it?
> 
> This is surprising indeed.
> 
> Right now, db:add is still faster than db:replace, because the check
> for existing database paths can be completely skipped. This allows
> high-performance database insertions.In a future version of BaseX, I
> would love to get rid of db:add and db:replace and replace these
> functions with a db:update function, which will enforce that each
> document path exists only once in the database. This would surely
> reduce patterns like the one you encountered.
> 
> If you still manage to get this reproduced, just come back to us.

Reply via email to