Search code examples
kdbq-lang

Passing db path to \l or .Q.l using a variable


I'm writing a q script that loads a db in a particular path and does some processing on it. The location of the db is currently hardcoded in the script, but I want to pass the db path as an argument and get it to load from the path in the variable.

Currently it looks like this:

q) \l /path/to/dbDir        #Works

I figured out that .Q.l should let us do this using a variable, so I tried using the following in the script,

dbPath:`$.z.x 0
.Q.l hsym dbPath            #Fails

When running with argument /path/to/dbDir, the script always fails with some unreadable stuff and:

':/path/to/dbDir: No such file or directory

Could someone please help?


Solution

  • .Q.l is synonymous with \l which only takes a single argument, which is not an hsym but a file or directory name.

    Incidentally the unreadable stuff was the function definition, followed by a type error (as it was not expecting an hsym)