Search Postgresql Archives

Re: ecpg rejects input parameters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/09/2015 07:12 AM, Andrew Pennebaker wrote:
Makes sense.

Yes, it would be great if psql offered a flag for validating syntax.
Other programming languages do this, for example, bash -n, ruby -c, and
php -l.

Or pgsanity could take this:

CREATE DATABASE :db;

and convert it into:

CREATE DATABASE db;

before submitting it for syntax checking.

The basic issue is whose syntax are you interested in checking, SQL or the program that is creating the SQL. If it is just the SQL end result, then it needs to rendered down to an actual valid SQL statement. If it is the program, then it gets complicated in a hurry. Already you have mentioned psql and ecpg. Then in Postgres there are various procedural languages that have their own way of creating SQL. Then there are external languages, for example the one I use a lot Python. It has its own method(s) of passing in variable information via DB-API.



On Wed, Apr 8, 2015 at 3:53 PM, Tom Lane <tgl@xxxxxxxxxxxxx
<mailto:tgl@xxxxxxxxxxxxx>> wrote:

    Andrew Pennebaker <andrew.pennebaker@xxxxxxxxx
    <mailto:andrew.pennebaker@xxxxxxxxx>> writes:
    > I can't find a relevant section to address my specific problem: ecpg
    > complaining when I try to check the syntax of my .sql files that use input
    > parameters.

    I'm not sure why you think that should work.  psql and ecpg have quite
    distinct input languages.  Both are extensions of SQL, but the key word
    there is "extension".  ecpg certainly isn't going to accept psql's
    backslash commands for instance, any more than psql would accept ecpg's
    C code portions.  And I doubt it would be useful for ecpg to simply
    ignore
    the variable-interpolation symbols; but it has no way to know what's
    going
    to be substituted for those symbols.

    It would be more interesting to consider giving psql a syntax-check-only
    mode; though I'm afraid use of variable interpolation would still be
    pretty
    problematic, since the variables are commonly filled from execution of
    previous commands.

                             regards, tom lane




--
Cheers,

Andrew Pennebaker
www.yellosoft.us <http://www.yellosoft.us>


--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux