Re: gexec from command prompt?
On Thu, Jan 12, 2023 at 10:34 AM Pavel Stehule wrote: > > čt 12. 1. 2023 v 18:25 odesílatel Ron napsal: > >> >> Removing "\\exec" from the statement, and appending -c "\\gexec" to the >> psql >> command technically worked, but did not run the commands. >> > > I don't know why, but \g* commands don't work from the -c option. But in > this case it is not necessary > > Well, the -c option states: command must be either a command string that is completely parsable by the server (i.e., it contains no psql-specific features), or a single backslash command. Thus you cannot mix SQL and psql meta-commands within a -c option. Thus any meta-command that interacts with server-parsed SQL is rendered useless in -c David J.
Re: gexec from command prompt?
On 2023-Jan-12, Ron wrote: > Postgresql 12.11 > > This might be more of a bash question, or it might be a psql vs engine > problem. > > I want to run this query using psql from a bash prompt: > select format('SELECT ''%s'', MIN(part_date) FROM %s;', table_name, > table_name) > from dba.table_structure > order by table_name\gexec Yeah, what I use in these cases is something like echo "select format('SELECT ''%s'', MIN(part_date) FROM %s;', table_name, table_name) from dba.table_structure order by table_name \gexec" | psql -f- -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "El hombre nunca sabe de lo que es capaz hasta que lo intenta" (C. Dickens)
Re: gexec from command prompt?
čt 12. 1. 2023 v 18:25 odesílatel Ron napsal: > Postgresql 12.11 > > This might be more of a bash question, or it might be a psql vs engine > problem. > > I want to run this query using psql from a bash prompt: > select format('SELECT ''%s'', MIN(part_date) FROM %s;', table_name, > table_name) > from dba.table_structure > order by table_name\gexec > > Thus, I added an extra back > > $ psql sides -atXc "select format('SELECT ''%s'', MIN(part_date) FROM > %s;', > table_name, table_name) from dba.table_structure order by table_name limit > 5\\gexec" > select format('SELECT ''%s'', MIN(part_date) FROM %s;', table_name, > table_name) from dba.table_structure order by table_name limit 5\gexec > ERROR: syntax error at or near "\" > LINE 1: ...) from dba.table_structure order by table_name limit 5\gexec > > Removing "\\exec" from the statement, and appending -c "\\gexec" to the > psql > command technically worked, but did not run the commands. > I don't know why, but \g* commands don't work from the -c option. But in this case it is not necessary you can psql -c "xxx" | psql Regards Pavel > > -- > Born in Arizona, moved to Babylonia. > > >