Re: psql: show only failed queries - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: psql: show only failed queries
Date
Msg-id CAFj8pRA3wW3MWudk-M8XZAxfiWWCOtUxGtiprtc+UHxLh4H=uQ@mail.gmail.com
Whole thread Raw
In response to Re: psql: show only failed queries  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: psql: show only failed queries  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
Hello

updated patch - only one change: query is prefixed by "QUERY:  "

current state:

[pavel@localhost ~]$ src/postgresql/src/bin/psql/psql postgres -q -f data.sql
psql:data.sql:6: ERROR:  value too long for type character varying(3)

Show only errors mode:

[pavel@localhost ~]$ src/postgresql/src/bin/psql/psql postgres -q -v ECHO=error -f data.sql
psql:data.sql:6: ERROR:  value too long for type character varying(3)
QUERY:  INSERT INTO bubu VALUES('Ahoj');

Now, when I am thinking about these results, I am thinking, so second variant is more practical and can be default.

Opinions, notes?

Regards

Pavel




2014-03-04 8:52 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>:



2014-03-04 6:35 GMT+01:00 Fabrízio de Royes Mello <fabriziomello@gmail.com>:




On Sat, Mar 1, 2014 at 8:01 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>
> Hello
>
> I was asked, how can be showed only failed queries in psql.
>
> I am thinking, so it is not possible now. But implementation is very simple
>
> What do you think about it?
>
> bash-4.1$ psql postgres -v ECHO=error -f data.sql
> INSERT 0 1
> Time: 27.735 ms
> INSERT 0 1
> Time: 8.303 ms
> psql:data.sql:3: ERROR:  value too long for type character varying(2)
> insert into foo values('bbb');
> Time: 0.178 ms
> INSERT 0 1
> Time: 8.285 ms
> psql:data.sql:5: ERROR:  value too long for type character varying(2)
> insert into foo values('ssssss');
> Time: 0.422 ms
>

The patch works fine, but I think we must add some prefix to printed query. Like that:

fabrizio=# \set ECHO error
fabrizio=# insert into foo values ('XXX');

ERROR:  value too long for type character varying(2)
DETAIL:  insert into foo values ('XXX');

or

fabrizio=# \set ECHO error
fabrizio=# insert into foo values ('XXX');

ERROR:  value too long for type character varying(2)
QUERY:  insert into foo values ('XXX');

This may help to filter the output with some tool like 'grep'.

sure, good idea.

I add link to your notice to commitfest app

Regards

Pavel
 

Regards,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Timbira: http://www.timbira.com.br
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello


Attachment

pgsql-hackers by date:

Previous
From: Keith Fiske
Date:
Subject: Re: [BUGS] BUG #9652: inet types don't support min/max
Next
From: Tim Kane
Date:
Subject: Re: [GENERAL] Migrating from 9.2.4 to 9.3.0 with XML DOCTYPE