Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

kdb

q-lang

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?

like image 642
Sahas Avatar asked Dec 22 '22 11:12

Sahas


1 Answers

\x ... is always equivalent to system"x ...", which is the general solution to the "how do i pass a variable to a \ command question

in your case, you want

system"l ",.z.x 0

(btw, i don't think .Q.l is involved in \l of code, only of data, so don't try to use it to load extra .q files)

like image 140
Aaron Davies Avatar answered Feb 16 '23 19:02

Aaron Davies