confusing get/match behaviour

Hi,

I have a splayed table in `:tbl/.

q) `:tbl/ set (a:1 2 3;s:“abc”)

Why am I getting different results based on tailing / ?

q){get~select from x}`:tbl

1b

q){get~select from x}`:tbl/

0b                    

Actually, why does get return something different or why does ~ (match) say those are different?

q)(~/)get each :tbl:tbl/

0b

Regards,

Andras

q)0N!get`:tbl;

+as!(1 2 3;“abc”)
q)0N!get:tbl/; +as!:tbl/

The latter is an (internal) representation of the table, for deferred loading of the data.

Without the trailing /, the data is mapped/loaded immediately, as seen via .Q.w`mmap.

The trailing / indicates the mapping is deferred until used (when inside another function such as select/show).

~ doesn’t do that automatically, hence reports them as different.