db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4557) Make it possible to parameterize ij scripts.
Date Mon, 22 Feb 2010 15:22:27 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836660#action_12836660
] 

Rick Hillegas commented on DERBY-4557:
--------------------------------------

Thanks for thinking more about this issue, Sylvain and Denis.

Concerning the compatibility issue which Sylvain raised...

>However, what about the compatibility with existing ij scripts, if those already embed
parameter-like strings?
>ij> INSERT INTO T(user, password) VALUES('john', '$1');
>In the (rather simplistic) example above, the statement will set the password of "fred"
to "$1" with some versions of ij, but will set it to the empty string - or whatever the parameter
$1 is defined - with other versions.

...I think we can handle this by not assigning a default value to unassigned variables. If
the user hasn't specified a value for $1 on the command line, then ij does not substitute
anything.

I think it is good to think about this issue in the broader context of whether we want to
add support for an ij SET command which creates variables. However, I think that enhancement
deserves a separate, related issue.

Here are some possible ij command lines which pass in variables. The following line would
support numbered variables (e.g., $1, $2, ...):

  ij -a fred -a fredpassword scriptFileName

The following would support named variables (e.g., ${user}):

  ij -Dij.arg.user=fred -Dij.arg.password=fredpassword scriptFileName

I am leaning toward the second approach. It's a little more verbose but it exploits existing
ij capabilities.

Thanks.









> Make it possible to parameterize ij scripts.
> --------------------------------------------
>
>                 Key: DERBY-4557
>                 URL: https://issues.apache.org/jira/browse/DERBY-4557
>             Project: Derby
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Rick Hillegas
>
> It would be nice to be able to parameterize ij scripts. At a high level, this would be
akin to the $N parameters which you pass on the command line to Unix shell scripts. I think
it would be easiest to understand if parameter substitution happened before the script was
handed to the ij parser.
> It would be nice to write something like the following:
> connect 'jdbc:derby:$1;user=$2;password=$3';
> insert into $4( a ) values ( $5 );
> or something like this:
> connect 'jdbc:derby:${dbname};user=${user};password=${password}';
> insert into ${tableName} values ( ${intValue} );

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message