Re: [O] [babel] Some variables with no default value don't provoke an error
Hi Eric, Eric Schulte wrote: > "Sebastien Vauban" writes: >> Eric Schulte wrote: >>> "Sebastien Vauban" writes: Weirdly enough, in the following code block, I must add a default value for vars `table', `column' and `type' but not for the var `nullability'. I've even been able to add fake vars `something' and `else' with no error being reported (at ingestion time): #+srcname: add-column-in-table(table="", column="", something, type="", else, nullability) #+begin_src sql -- add column `$column' (if column does not exist yet) IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table' AND COLUMN_NAME = '$column') BEGIN ALTER TABLE $table ADD $column $type $nullability END #+end_src Note that, in the above state, the code block is ingested with no error, but, if I remove the default value of var `table', it then generates back an error... >>> >>> I've just pushed up a check for these functional-syntax variables which >>> will ensure that each is given a default value. Since this check takes >>> place at the location of the code block it /does/ include the name of >>> the code block in the error message. >> >> If you have a couple of minutes, can you clarify some points to be sure I can >> understand: >> >> - What do you call functional-syntax vars? The ones in the #+srcname, next >> to >> the block name, as opposed to the ones declared as :var arguments? > > yes, that's exactly it, I don't know what "functional-syntax" is a good > or descriptive term, but it is used in the source code so I'm now > repeating it. OK. >> The fact, then, that we can get a clearer message in case of error, seems >> to >> me an incentive to use that type of declaration... > > I personally prefer the traditional ":var" style, I'll have to add > similar error checking there... Good to know. >> - Why was `nullability' not detected to have no default value? Why were >> `table', `column' and `type' well correctly detected? > > Meaning after you assigned values to the first three no error was thrown > when the fourth (nullability) wasn't assigned a value? Could you > provide a minimal example? Yes, you summed up exactly what I (can assure you that) observed yesterday. Though, now that the message includes the src-name, it is somehow fixed. I can't reproduce it anymore... Thanks. Best regards, Seb -- Sebastien Vauban
Re: [O] [babel] Some variables with no default value don't provoke an error
Hi, "Sebastien Vauban" writes: > Hi Eric, > > Eric Schulte wrote: >> "Sebastien Vauban" writes: >>> Weirdly enough, in the following code block, I must add a default value for >>> vars `table', `column' and `type' but not for the var `nullability'. >>> >>> I've even been able to add fake vars `something' and `else' with no error >>> being reported (at ingestion time): >>> >>> #+srcname: add-column-in-table(table="", column="", something, type="", >>> else, nullability) >>> #+begin_src sql >>> -- add column `$column' (if column does not exist yet) >>> IF NOT EXISTS (SELECT * >>>FROM INFORMATION_SCHEMA.COLUMNS >>>WHERE TABLE_NAME = '$table' >>>AND COLUMN_NAME = '$column') >>> BEGIN >>> ALTER TABLE $table >>> ADD $column $type $nullability >>> END >>> #+end_src >>> >>> Note that, in the above state, the code block is ingested with no error, >>> but, >>> if I remove the default value of var `table', it then generates back an >>> error... >> >> I've just pushed up a check for these functional-syntax variables which >> will ensure that each is given a default value. Since this check takes >> place at the location of the code block it /does/ include the name of >> the code block in the error message. > > If you have a couple of minutes, can you clarify some points to be sure I can > understand: > > - What do you call functional-syntax vars? The ones in the #+srcname, next to > the block name, as opposed to the ones declared as :var arguments? > yes, that's exactly it, I don't know what "functional-syntax" is a good or descriptive term, but it is used in the source code so I'm now repeating it. > > The fact, then, that we can get a clearer message in case of error, seems to > me an incentive to use that type of declaration... > I personally prefer the traditional ":var" style, I'll have to add similar error checking there... > > - Why was `nullability' not detected to have no default value? Why were > `table', `column' and `type' well correctly detected? > Meaning after you assigned values to the first three no error was thrown when the fourth (nullability) wasn't assigned a value? Could you provide a minimal example? > > Best regards, > Seb -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] [babel] Some variables with no default value don't provoke an error
Hi Eric, Eric Schulte wrote: > "Sebastien Vauban" writes: >> Weirdly enough, in the following code block, I must add a default value for >> vars `table', `column' and `type' but not for the var `nullability'. >> >> I've even been able to add fake vars `something' and `else' with no error >> being reported (at ingestion time): >> >> #+srcname: add-column-in-table(table="", column="", something, type="", >> else, nullability) >> #+begin_src sql >> -- add column `$column' (if column does not exist yet) >> IF NOT EXISTS (SELECT * >>FROM INFORMATION_SCHEMA.COLUMNS >>WHERE TABLE_NAME = '$table' >>AND COLUMN_NAME = '$column') >> BEGIN >> ALTER TABLE $table >> ADD $column $type $nullability >> END >> #+end_src >> >> Note that, in the above state, the code block is ingested with no error, but, >> if I remove the default value of var `table', it then generates back an >> error... > > I've just pushed up a check for these functional-syntax variables which > will ensure that each is given a default value. Since this check takes > place at the location of the code block it /does/ include the name of > the code block in the error message. If you have a couple of minutes, can you clarify some points to be sure I can understand: - What do you call functional-syntax vars? The ones in the #+srcname, next to the block name, as opposed to the ones declared as :var arguments? The fact, then, that we can get a clearer message in case of error, seems to me an incentive to use that type of declaration... - Why was `nullability' not detected to have no default value? Why were `table', `column' and `type' well correctly detected? Best regards, Seb -- Sebastien Vauban
Re: [O] [babel] Some variables with no default value don't provoke an error
"Sebastien Vauban" writes: > Hi Eric, > > As said previously, I've been forced to add a default value to many code > blocks I had in my local LOB, which I ingest in my `.emacs' file: > > #+begin_src emacs-lisp > (when (try-require 'ob-lob) >(org-babel-lob-ingest "~/emacs/site-lisp/my-local-lob.org")) > #+end_src > > Weirdly enough, in the following code block, I must add a default value for > vars `table', `column' and `type' but not for the var `nullability'. > > I've even been able to add fake vars `something' and `else' with no error > being reported (at ingestion time): > > #+srcname: add-column-in-table(table="", column="", something, type="", else, > nullability) > #+begin_src sql > -- add column `$column' (if column does not exist yet) > IF NOT EXISTS (SELECT * >FROM INFORMATION_SCHEMA.COLUMNS >WHERE TABLE_NAME = '$table' >AND COLUMN_NAME = '$column') > BEGIN > ALTER TABLE $table > ADD $column $type $nullability > END > #+end_src > > Note that, in the above state, the code block is ingested with no error, but, > if I remove the default value of var `table', it then generates back an > error... > I've just pushed up a check for these functional-syntax variables which will ensure that each is given a default value. Since this check takes place at the location of the code block it /does/ include the name of the code block in the error message. Cheers -- Eric > > Best regards, > Seb -- Eric Schulte http://cs.unm.edu/~eschulte/
[O] [babel] Some variables with no default value don't provoke an error
Hi Eric, As said previously, I've been forced to add a default value to many code blocks I had in my local LOB, which I ingest in my `.emacs' file: #+begin_src emacs-lisp (when (try-require 'ob-lob) (org-babel-lob-ingest "~/emacs/site-lisp/my-local-lob.org")) #+end_src Weirdly enough, in the following code block, I must add a default value for vars `table', `column' and `type' but not for the var `nullability'. I've even been able to add fake vars `something' and `else' with no error being reported (at ingestion time): #+srcname: add-column-in-table(table="", column="", something, type="", else, nullability) #+begin_src sql -- add column `$column' (if column does not exist yet) IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table' AND COLUMN_NAME = '$column') BEGIN ALTER TABLE $table ADD $column $type $nullability END #+end_src Note that, in the above state, the code block is ingested with no error, but, if I remove the default value of var `table', it then generates back an error... Best regards, Seb -- Sebastien Vauban