Hello everyone,
I have a splayed table set up and can append a single record to it:
``:hdb/progress/ set ( method:sym?
ONETWO
TWO; distance:1552 1623 1223):hdb/progress/ upsert (
sym?THREE;1111)
However I’m having difficulties upserting multiple records at once. The docs say using rows instead of columns is preferred:
q)t upsert ((
Prefect; 126); (Marvin; 200))
And it really works on in-memory table, but doesn’t on a splayed table. In fact, I’ve tried multiple combinations, e.g.
``:hdb/progress/ upsert ((sym?
TWO;1678); (sym?
THREE;999)) / version that works on in-memory table:hdb/progress/ upsert (
sym?TWO
THREE;1678 999) / mimicking the batch insert:hdb/progress/ upsert flip (
sym?TWO
THREE;1678 999) / the previous, only flipping to upsert by row`
And none of them work, yielding type error:
'type [2] ............................................/q/persistence_test.q:18:
:hdb/progress/ upsert (sym?
TWOTHREE;1678 999) ^ [0] (<load>) )
Please, what am I missing?
In the end I found out that upserting a new labeled table works
``:hdb/progress/ upsert (method:sym?
TWOTHREE; distance:1678 999)
… but is there a version where I don’t have to provide the whole table (more specifically column names) and I append columns/rows just as for in-memory version?
Thank you!
Radek