Обсуждение: commenting sql code

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

commenting sql code

От
joseph speigle
Дата:
hi,
I was wondering again (I'd asked this a while back but can't find in archives) ..... how can I make an sql comment?

For example this script .....
*******************************************************
select mazurek(1);
-- test
SELECT  count(*) as master_count FROM master;
SELECT  count(*) as detail_count FROM detail;
*******************************************************

gives me this result:
*******************************************************
test=# \e mazurek_test.sql
                 mazurek
------------------------------------------
 less references in master than in detail
(1 row)

test=#
*******************************************************
which is the return value from the function, and all further output is killed by the comment.

so it produces no output after the --test.

WASN'T THAT A COMMENT?

I have also tried.... --test (without the space)
to no avail

joe
--
speigle
www.sirfsup.com

Re: commenting sql code

От
Bruno LEVEQUE
Дата:
In your example you must use \i and not \e



On Thu, 19 Feb 2004, joseph speigle wrote:

> hi,
> I was wondering again (I'd asked this a while back but can't find in archives) ..... how can I make an sql comment?
>
> For example this script .....
> *******************************************************
> select mazurek(1);
> -- test
> SELECT  count(*) as master_count FROM master;
> SELECT  count(*) as detail_count FROM detail;
> *******************************************************
>
> gives me this result:
> *******************************************************
> test=# \e mazurek_test.sql
>                  mazurek
> ------------------------------------------
>  less references in master than in detail
> (1 row)
>
> test=#
> *******************************************************
> which is the return value from the function, and all further output is killed by the comment.
>
> so it produces no output after the --test.
>
> WASN'T THAT A COMMENT?
>
> I have also tried.... --test (without the space)
> to no avail
>
> joe
> --
> speigle
> www.sirfsup.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>

Bruno LEVEQUE
System Engineer
SARL NET6D
bruno.leveque@net6d.com
http://www.net6d.com

Re: commenting sql code

От
Tom Lane
Дата:
Bruno LEVEQUE <bruno.leveque@net6d.com> writes:
> In your example you must use \i and not \e

On investigation, this is actually a bug in the way \e works --- when
the file is read back into psql, it's effectively treated as a single
line, and so the comment kills more than you'd expect.  I am amused to
realize that the bug is fixed in CVS tip, as a completely unintended
consequence of the flex rewrite I just did ...

But I agree that \i not \e is the preferred way to invoke a SQL file
that already exists.  I am not sure if that's what Joe was trying to
do or not.

            regards, tom lane

Re: commenting sql code

От
joseph speigle
Дата:
hello tom and bruno,

Thanks for solving this issue for me.  Doing as you say \i and not \e correctly ignores comments.  All I wanted to do
BTWwas what it looks like: edit an sql file from the cwd in the buffer and run it as a script when I close the buffer
(Iwant to say vi buffer and "quit vi with :wq").  I hadn't tried loading the file with \i.  I also notice now that it
runscorrectly doing psql -d test < file_name.sql and correctly ignores the comments, but before I wasn't sure if
postgreshad special comment syntax!! 

On Fri, Feb 20, 2004 at 09:42:55AM -0500, Tom Lane wrote:
> Bruno LEVEQUE <bruno.leveque@net6d.com> writes:
> > In your example you must use \i and not \e
>
> On investigation, this is actually a bug in the way \e works --- when
> the file is read back into psql, it's effectively treated as a single
> line, and so the comment kills more than you'd expect.  I am amused to
> realize that the bug is fixed in CVS tip, as a completely unintended
> consequence of the flex rewrite I just did ...
>
> But I agree that \i not \e is the preferred way to invoke a SQL file
> that already exists.  I am not sure if that's what Joe was trying to
> do or not.
>
>             regards, tom lane
joe
--
speigle
www.sirfsup.com