-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Labels
Description
Currently we do not distinguish
CREATE GENERATOR g FOR p USING m ("foo")
from
CREATE GENERATOR g FOR p USING m ('foo')
which is not at the moment blocking anything (hence the stall of #410), but which may be worth fixing soon. Furthermore, passing a verbatim string through, e.g. to provide the source code in
CREATE GENERATOR g FOR p USING cgpm (
MODEL x GIVEN y USING venturescript (source = 'assume x = 42; ...')
)
as we kludgily do in
bayeslite/tests/test_vscgpm.py
Lines 166 to 179 in f3f27a5
bdb.execute(''' | |
CREATE GENERATOR g0 FOR satellites USING cgpm ( | |
apogee NORMAL, | |
LATENT kepler_cluster_id NUMERICAL, | |
LATENT kepler_noise NUMERICAL, | |
MODEL kepler_cluster_id, kepler_noise, period | |
GIVEN apogee, perigee | |
USING venturescript (source = "{}"), | |
MODEL perigee GIVEN apogee USING linreg, | |
MODEL class_of_orbit GIVEN apogee, period, perigee | |
USING forest (k = 4), | |
SUBSAMPLE 100, | |
) | |
'''.format(kepler_source)) |
"
appears in the VentureScript code, and abuses "..."
quotation, which in SQL means names, with '...'
meaning strings. No quotation should be necessary on the user's part -- it should be possible to do
bdb.execute('CREATE GENERATOR ... USING venturescript (source = ?) ...', (venturescript,))
and get the same intended effect reliably.