insert expects columns, upsert expects rows.
insert tries to infer the structure of the input from the data - it runs into trouble with (atom, list, atom).
See https://groups.google.com/forum/#!topic/personal-kdbplus/JxPLxlmIzJs for a more thorough explanation
N.B.: Borror writes:
http://code.kx.com/q4m3/9_Queries_q-sql/#91-inserting-records
The upsert
function is superior to insert
and is to be preferred. We include insert
for nostalgia only.