-
Notifications
You must be signed in to change notification settings - Fork 64
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.