Hi all, 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? According to https://www.postgresql.org/docs/10/static/sql-syntax-lexical.html a) "SQL identifiers and key words must begin with a letter ..." b) "The tag, if any, of a dollar-quoted string follows the same rules as an unquoted identifier ... " c) "A dollar sign ($) followed by digits is used to represent a positional parameter in the body of a function definition or a prepared statement. In other contexts the dollar sign can be part of an identifier or a dollar-quoted string constant." I don't see any problems with such a choise. Am I missing something? Thanks!