…thanks; a new snapshot is available [1]. Best, Christian [1] https://files.basex.org/releases/latest/
On Tue, Nov 15, 2022 at 7:40 PM Tim Thompson <[email protected]> wrote: > Sure, attached are two command scripts: one that fails (when dumping store > contents) and one that passes (when adding a value directly). > > Thanks, > Tim > > > -- > Tim A. Thompson (he, him) > Librarian for Applied Metadata Research > www.linkedin.com/in/timathompson > [email protected] > > > El mar, 15 nov 2022 a la(s) 13:21, Christian Grün ( > [email protected]) escribió: > >> Wow. I’ll look into that soon. Do you think you can provide me with a >> little test case (e.g., a BaseX command script) to reproduce this? >> >> >> >> >> Tim Thompson <[email protected]> schrieb am Di., 15. Nov. 2022, 19:16: >> >>> Thanks! I just tried to dump the contents of the store to a database >>> value: >>> >>> db:put-value( >>> "entries", >>> array { >>> store:keys() ! store:get(.) (: sequence of arrays :) >>> }, >>> "x" >>> ) >>> >>> But when I query with db:get-value("entries", "x"), I get a "Not >>> Expected" error. Should this kind of operation be possible? >>> >>> Error: >>> Improper use? Potential bug? Your feedback is welcome: >>> Contact: [email protected] >>> Version: BaseX 10.3 beta >>> Java: Azul Systems, Inc., 11.0.16 >>> OS: Mac OS X, aarch64 >>> Stack Trace: >>> java.lang.RuntimeException: Not Expected. >>> at org.basex.util.Util.notExpected(Util.java:54) >>> at org.basex.query.value.type.AtomType.read(AtomType.java:983) >>> at org.basex.core.Store.read(Store.java:315) >>> at org.basex.query.func.db.DbGetValue.resource(DbGetValue.java:70) >>> at org.basex.query.func.db.DbGetValue.value(DbGetValue.java:46) >>> at org.basex.query.func.db.DbGetValue.value(DbGetValue.java:27) >>> at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:46) >>> at org.basex.query.scope.MainModule.iter(MainModule.java:48) >>> at org.basex.query.QueryContext.lambda$4(QueryContext.java:354) >>> at org.basex.query.QueryContext.run(QueryContext.java:763) >>> at org.basex.query.QueryContext.iter(QueryContext.java:354) >>> at org.basex.query.QueryContext.lambda$6(QueryContext.java:601) >>> at org.basex.query.QueryContext.run(QueryContext.java:763) >>> at org.basex.query.QueryContext.cache(QueryContext.java:598) >>> at org.basex.query.QueryProcessor.cache(QueryProcessor.java:118) >>> at org.basex.core.cmd.AQuery.run(AQuery.java:82) >>> at org.basex.core.Command.run(Command.java:233) >>> at org.basex.core.Command.execute(Command.java:93) >>> at org.basex.gui.GUI.execute(GUI.java:415) >>> at org.basex.gui.GUI.lambda$5(GUI.java:360) >>> at java.base/java.lang.Thread.run(Thread.java:829) >>> >>> >>> >>> -- >>> Tim A. Thompson (he, him) >>> Librarian for Applied Metadata Research >>> www.linkedin.com/in/timathompson >>> [email protected] >>> >>> >>> El mar, 15 nov 2022 a la(s) 13:07, Christian Grün ( >>> [email protected]) escribió: >>> >>>> You'll be safe: Updates with db:put-value will be managed via the >>>> Pending Update List [1], and future queries that operate on the same >>>> database will be queued until the update is finished. >>>> >>>> [1] https://docs.basex.org/wiki/XQuery_Update#Pending_Update_List >>>> >>>> >>>> >>>> Tim Thompson <[email protected]> schrieb am Di., 15. Nov. 2022, 18:50: >>>> >>>>> That's perfect--I knew I was missing something :) >>>>> >>>>> Are db:get-value and db:put-value side-effecting as well? >>>>> >>>>> Thanks, >>>>> Tim >>>>> >>>>> >>>>> -- >>>>> Tim A. Thompson (he, him) >>>>> Librarian for Applied Metadata Research >>>>> www.linkedin.com/in/timathompson >>>>> [email protected] >>>>> >>>>> >>>>> El mar, 15 nov 2022 a la(s) 12:28, Christian Grün ( >>>>> [email protected]) escribió: >>>>> >>>>>> Hi Tim, >>>>>> >>>>>> > Using the store module, is it possible to read and merge multiple >>>>>> custom stores into main memory >>>>>> >>>>>> We could add an argument (or options) to file:read to allow entries to >>>>>> be added to an existing main-memory store. >>>>>> >>>>>> > set a particular store as context for a query? >>>>>> >>>>>> The recommended approach is to invoke store:read before any other >>>>>> operation in the query. Please note, however, that the store will be >>>>>> globally available. If a second query runs on the same server and >>>>>> opens another store, it will change the behavior of the first query. >>>>>> For such use cases, it’s better to use databases. >>>>>> >>>>>> > Or, do I need to serialize the stores, e.g., as JSON and then >>>>>> create databases for them? >>>>>> >>>>>> You could have a look at the new db:get-value and db:put-value >>>>>> functions [1]: These functions have particularly been designed to >>>>>> organize XQuery items in databases, making casts to JSON or XML >>>>>> obsolete. >>>>>> >>>>>> Hope this helps, >>>>>> Christian >>>>>> >>>>>> [1] https://docs.basex.org/wiki/Database_Module#db:get-value >>>>>> >>>>>

