Hello everyone,
I have a splayed table set up and can append a single record to it:
``:hdb/progress/ set ( method:sym?ONETWOTWO; 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?TWOTHREE;1678 999) / mimicking the batch insert:hdb/progress/ upsert flip (sym?TWOTHREE;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