KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums KX Solutions RDB upd "splay" error Re: RDB upd "splay" error

  • davidcrossey

    Member
    March 3, 2022 at 12:00 am

    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