From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Dmitry Igrishin <dmitigr(at)gmail(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Using the dollar sign as a prefix for named parameter of prepared statement. |
Date: | 2017-08-27 15:13:02 |
Message-ID: | 19398.1503846782@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Dmitry Igrishin <dmitigr(at)gmail(dot)com> writes:
> I'm working on finishing beta release of my C++ API for PostgreSQL. The
> library
> have simple SQL parser (preprocessor) to support the queries like that:
> SELECT :"column", $tag$constant string$tag$
> FROM :tables
> WHERE name LIKE :'name' AND
> sex = $1 AND
> age > $age
> where:
> :"column" is a variable which will be quoted as identifier (like in
> psql),
> :tables is a variable which will be not be quoted at all (like in psql),
> :'name' is a variable which will be quoted as literal (like in psql),
> $1 is a positional parameter,
> $age is a named parameter
> Is there are any contraindications/caveats/gotchas on using the dollar sign
> as a prefix for the named parameters?
How are you going to distinguish named parameters from dollar-quote tags?
For instance, this is legal:
regression=# select $foobar$stuff$foobar$;
?column?
----------
stuff
(1 row)
I think you're going to end up with weird corner case behaviors if
you try to squeeze still another meaning into "$letters..."
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitry Igrishin | 2017-08-27 15:32:55 | Re: Using the dollar sign as a prefix for named parameter of prepared statement. |
Previous Message | Dmitry Igrishin | 2017-08-27 09:15:55 | Using the dollar sign as a prefix for named parameter of prepared statement. |