On Mon, 2003-09-22 at 06:42, [EMAIL PROTECTED] wrote:
> >You do realize that the shell is going to interpret that string in
> >double quotes right?
> I guess so, for the very same I have tried with
> Command: psql test -c "> CREATE FUNCTION add_one (integer) RETURNS
>  INTEGER AS '     BEGIN         RETURN ''$1'' + 1;     END; ' LANGUAGE
>  'plpgsql';"
> But still it is not taking it as $1, instead empty string.
> Ideeally it shud consider $1 as string... but why isn't it

It's still being interpreted by the shell.  The shell takes no notice at
all of the nested quotes; everything inside the double quotes is treated
as literal text, after replacing variables.  Look here:

        [EMAIL PROTECTED]  echo psql test -c "> CREATE FUNCTION add_one
        (integer) RETURNS INTEGER AS '     BEGIN         RETURN ''$1'' +
        1;     END; ' LANGUAGE 'plpgsql';"
        psql test -c > CREATE FUNCTION add_one (integer) RETURNS INTEGER
        AS '     BEGIN         RETURN '''' + 1;     END; ' LANGUAGE
        'plpgsql';

Instead of trying to quote $1, you need to escape the dollar sign:

        [EMAIL PROTECTED] echo psql test -c "> CREATE FUNCTION add_one
        (integer) RETURNS INTEGER AS '     BEGIN         RETURN \$1 +
        1;     END; ' LANGUAGE 'plpgsql';"
        psql test -c > CREATE FUNCTION add_one (integer) RETURNS INTEGER
        AS '     BEGIN         RETURN $1 + 1;     END; ' LANGUAGE
        'plpgsql';

-- 
Oliver Elphick                                [EMAIL PROTECTED]
Isle of Wight, UK                             http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "Therefore when thou doest thine alms, do not sound a 
      trumpet before thee, as the hypocrites do in the 
      synagogues and in the streets, that they may have 
      glory of men. Verily I say unto you, They have their 
      reward. But when thou doest alms, let not thy left 
      hand know what thy right hand doeth; That thine alms 
      may be in secret; and thy Father which seeth in secret
      himself shall reward thee openly."       Matthew 6:2-4


---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to