Обсуждение: Can psql show me where my script is broken?

Поиск
Список
Период
Сортировка

Can psql show me where my script is broken?

От
"jws"
Дата:
I have an enormous sql script with an incorrect insert line somewhere.
I can echo the commands to stdout as they are executed, but apparently
errors go to stderr. How can I determine where the problem is?


Re: Can psql show me where my script is broken?

От
"Stuart Cooper"
Дата:
> I have an enormous sql script with an incorrect insert line somewhere.
> I can echo the commands to stdout as they are executed, but apparently
> errors go to stderr. How can I determine where the problem is?

from memory, if you invoke it from the shell with psql [connection
options] -f filename.sql
you'll get the line number of filename.sql that has the error.

Good luck,
Stuart.

Re: Can psql show me where my script is broken?

От
Tom Lane
Дата:
"Stuart Cooper" <stuart.cooper@gmail.com> writes:
>> I have an enormous sql script with an incorrect insert line somewhere.
>> I can echo the commands to stdout as they are executed, but apparently
>> errors go to stderr. How can I determine where the problem is?

> from memory, if you invoke it from the shell with psql [connection
> options] -f filename.sql
> you'll get the line number of filename.sql that has the error.

Any reasonably recent version of postgres will give you a fairly decent
pointer to syntax errors.  For example:

$ cat bogus.sql
select *
from
foo bar baz
where 1=0;
$ psql regression
...
regression=# \i bogus.sql
psql:bogus.sql:4: ERROR:  syntax error at or near "baz"
LINE 3: foo bar baz
                ^
regression=#

If you feel you're being left in the dark, please provide some specifics
about what the error is and what PG version you're using.

            regards, tom lane