From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [babel] Some variables with no default value don't provoke an error Date: Fri, 16 Sep 2011 21:54:29 +0200 Message-ID: <80fwjwgt56.fsf@somewhere.org> References: <80r53jlciw.fsf@somewhere.org> <87r53hhkff.fsf@gmail.com> <80vcssakn7.fsf@somewhere.org> <87ty8cpjk2.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org 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