Search Postgresql Archives

Re: Casting a collation in an ORDER BY ... COLLATE

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

 



Kip Cole <kipcole9@xxxxxxxxx> writes:
> cldr_sql=# select * from models order by name collate 'en-x-icu'::regcollation;
> ERROR: syntax error at or near "'en-x-icu'"
> LINE 1: select * from models order by name collate 'en-x-icu'::regco…

You've got the syntax off a bit.  The argument of COLLATE is an
identifier, not a string literal (or expression), so you should write

select * from models order by name collate "en-x-icu";

The double quotes are needed because most collation names don't
follow SQL identifier rules.

> Utilmately the objective is to interpolate the collation value into a prepared query so
> this is just the first step to validate that casting a COLLATE name  is possible or not.

If you mean that you want to inject a run-time-variable collation
name, you can't, any more than you can inject (say) a run-time-variable
table name.  You'd have to construct and execute a dynamic SQL string.

			regards, tom lane






[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 Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux