Hi leguan,
Below I have a q process that has loaded in a splayed table from disk, and when I attempt to upsert to it I receive the splay runtime error:
q) ls "sym" "trades"
q) l . trades
sym time price
--------------------------------------------
hagl 2019.03.18D00:59:52.359311488 72.50709
cokn 2011.09.16D13:20:44.392412288 48.1804
ojeg 2001.06.09D22:38:22.583004264 93.51307
ohbo 2002.08.03D15:00:12.478929184 70.93398
caha 2012.02.12D05:29:19.432019136 94.52199
q) upsert[`trades;flip (5?`4;5?.z.P;5?100f)]
'2022.03.03T20:16:22.250 splay [0] upsert[`trades;flip (10?`4;10?.z.P;10?100f)]
Compare this with a table defined in-memory (such as an RDB schema):
q)trades:([]sym:`$();time:`timestamp$();price:`float$())
q)trades
sym time price
--------------
q)upsert[`trades;flip (5?`4;5?.z.P;5?100f)]
`trades
q)trades
sym time price
-------------------------------------------
ncej 2010.12.07D17:24:19.578683840 39.27524
jogn 2012.10.28D18:28:23.546450688 51.70911
ciha 2001.11.10D07:36:32.747210000 51.59796
hkpb 2004.05.06D02:28:38.944876960 40.66642
aeaj 2008.04.29D20:37:48.030489920 17.80839
Has a process or a user loaded (or memory-mapped) the splayed table (or entire HDB) from disk into the RDB process?
Best regards,
David