For some reason when i use the save command on a table it creates 3 files. It didnt used to do this. Is there a new way to use it?
-rw-rw-r–. 1 desadm desadm 1742704 Mar 10 20:14 ot
-rw-rw-r–. 1 desadm desadm 167004504 Mar 10 20:14 ot#
-rw-rw-r–. 1 desadm desadm 161406 Mar 10 20:14 ot##
Can you include a small reproducible piece of code?
I do not see the files being created.
//Including kdb+ version information //If behaviour has changed include previous version information also q).z.k 2021.07.12 q).z.K 4f //An example table q)ot:(a:1 2 3;b:a
bn;c:("jj";"kk";"pp")) q)save
ot :ot //No # or ## files created by
savekeyword q){x where x like "ot*"}key
:. ,`ot
The # and ## files you see are used by the anymap datatype on disk.
You can still read your file with
get `:ot
From https://code.kx.com/q4m3/14_Introduction_to_Kdb%2B/#1423-splayed-tables-with-nested-columns :
When you splay a table with compound columns, q creates not one but two files for each compound column. … If you examine these files you will discover that the sharp file contains the binary data of the original list in flattened form and the non-sharp file is a serialized q list of integers representing the lengths of each sublist of the original list.
In this case, I think your column is doubly compounded which creates both a ot# and ot## file. As the other answerer says, you should be able to use _get _on the “non-sharped” file just fine.