Обсуждение: commenting sql code
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
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
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
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