pá 29. 3. 2019 v 19:50 odesílatel Christoph Berg <m...@debian.org> napsal:

> Re: Tom Lane 2019-03-29 <19517.1553876...@sss.pgh.pa.us>
> > >> Or perhaps better, allow pg_ctl to grow new subcommands for those
> > >> tasks?
> >
> > > We'd need to be careful to somehow delineate commands that need access
> > > to the data directory / run locally on the server from the ones that
> > > just needs a client connection.
> >
> > Hmm, that's a good point: to put it in terms that make sense to a
> > packager, it'd no longer be clear whether pg_ctl belongs in the
> > server package or the client package.
>
> True, and putting end-user commands like "create database" into the
> same admin tool like "stop", "promote", and "kill" feels both wrong
> and dangerous to me. It would also cause people to wonder why "pg_ctl
> -h remotehost stop" doesn't work.
>
> > I'm still not thrilled with wedging in these things as options
> > to psql though: its command line semantics are overly complicated
> > already, when you consider things like multiple -c and -f options.
> > I mean, somebody might think it's a feature to be able to do
> >
> >     psql --createuser alice --createuser bob -c 'some command' -f
> somefile
> >
> > but I don't.
>
> Ack. (Otoh, just processing all arguments after another might be
> well-defined, and not too hard?)
>
> > Maybe if we want to merge these things into one executable,
> > it should be a new one.  "pg_util createrole bob" ?
>
> "pg" is unfortunately already taken :(
>
> Fwiw, let's please keep supporting "createuser". Creating login roles
> is more common than non-login ones, and having to type "createrole
> --login bob" is cumbersome and will cause endless support requests by
> confused users.
>
> Other idea: If we don't want to reinvent a new tool, how about
> supporting prepared statements in psql?
>
>   psql -c 'create user %i' --args 'bob w. space'
>

Prepared statements cannot be DDL commands.

But psql has safe escaping via :"xxx" notation. So some like

psql -c 'create role :"role"' -v role='my role' ...

But what I know the psql variables are not evaluated for -c query

Pavel


>
> Christoph
>
>
>

Reply via email to