Re: psql \echo strangeness with :variables
Re: psql \echo strangeness with :variables
От:
ptjm@interlog.com (Patrick TJ McPhee)
Дата:
In article , Jerry Sievers wrote: % jsievers@jsievers# % = \set date `date '+%Y%m%d'` % % jsievers@jsievers# % = \echo :date % 20060524 % % jsievers@jsievers# % = \echo foo_:date % foo_:date <-- Was expecting this to expand... see below variables need to be space-delimited in \ contexts. Work-around: \set tn 'foo_' :date \echo :tn create table :tn(); -- Patrick TJ McPhee North York Canada ptjm@interlog.com
psql \echo strangeness with :variables
От:
Jerry Sievers <jerry@jerrysievers.com>
Дата:
Hello. Today I used a shell call in psql to save the runtime date in
a psql variable and use this to dynamically create tables with date
encoded in table name.
For some reason however, the psql \echo command can't expand the date
though it does expand in the calls to the backend.
See example below;
jsievers@jsievers#
= \set date `date '+%Y%m%d'`
jsievers@jsievers#
= \echo :date
20060524
jsievers@jsievers#
= \echo foo_:date
foo_:date <-- Was expecting this to expand... see below
jsievers@jsievers#
= create table foo_:date();
CREATE TABLE
jsievers@jsievers#
= \dt
List of relations
Schema | Name | Type | Owner
--------+--------------+-------+----------
public | foo_20060524 | table | jsievers
(1 row)
Seems there's a bit of asymmetry in the way psql evaluates the
:variables.
FYI
--
-------------------------------------------------------------------------------
Jerry Sievers 305 854-3001 (home) WWW ECommerce Consultant
305 321-1144 (mobile http://www.JerrySievers.com/