From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [babel] Some variables with no default value don't provoke an error Date: Fri, 16 Sep 2011 08:07:42 -0600 Message-ID: <87ty8cpjk2.fsf@gmail.com> References: <80r53jlciw.fsf@somewhere.org> <87r53hhkff.fsf@gmail.com> <80vcssakn7.fsf@somewhere.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([140.186.70.92]:40337) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4amZ-00021R-Dd for emacs-orgmode@gnu.org; Fri, 16 Sep 2011 11:56:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R4amY-00015Z-0f for emacs-orgmode@gnu.org; Fri, 16 Sep 2011 11:56:51 -0400 Received: from mail-iy0-f169.google.com ([209.85.210.169]:64023) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4amX-00014v-RO for emacs-orgmode@gnu.org; Fri, 16 Sep 2011 11:56:49 -0400 Received: by mail-iy0-f169.google.com with SMTP id n33so3441604iae.0 for ; Fri, 16 Sep 2011 08:56:49 -0700 (PDT) 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@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Sebastien Vauban Cc: emacs-orgmode@gnu.org 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/