pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Gerhard Häring <lists@ghaering.de>
Cc: pgsql-interfaces@postgresql.org
Subject: Re: I want to send comments to the backend!
Date: Fri, 21 Mar 2003 00:55:20 -0500 (EST)
Message-ID: <200303210555.h2L5tKG10364@candle.pha.pa.us> (raw)
In-Reply-To: <10177.1048225294@sss.pgh.pa.us>

Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > OK, this patch fixes the comment passing bug.  I remove the strspn() and
> > added a boolean to test if any parsetree had been generated --- if not,
> > I call NullCommand().
> 
> Seems like the hard way.  I had in mind a quick
> 
> 	if (parsetree_list == NIL)
> 	{
> 		NullCommand(dest);
> 		return;
> 	}
> 
> before entering the main loop.  It'd take a small amount of reordering
> of the existing code to make this happen without adding any more code
> than that, but it looked doable.

The problem is that there is so much startup/shutdown in that function
that adding a quick exit point seems too error-prone for maintenance,
rather than keeping the existing structure.

I used your idea of testing just 'parsetree_list' and the patch is now
smaller.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Attachments:

/pgpatches/empty (text/plain, 2.2K) download Index: src/backend/tcop/postgres.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/tcop/postgres.c,v retrieving revision 1.318 diff -c -c -r1.318 postgres.c *** src/backend/tcop/postgres.c 20 Mar 2003 07:02:10 -0000 1.318 --- src/backend/tcop/postgres.c 21 Mar 2003 05:52:56 -0000 *************** *** 927,932 **** --- 927,936 ---- EndCommand(commandTag, dest); } /* end loop over parsetrees */ + /* No parsetree - return empty result */ + if (!parsetree_list && IsUnderPostmaster) + NullCommand(dest); + /* * Close down transaction statement, if one is open. (Note that this * will only happen if the querystring was empty.) *************** *** 1995,2030 **** * 'Q' indicates a user query */ case 'Q': ! if (strspn(parser_input->data, " \t\r\n") == parser_input->len) ! { ! /* ! * if there is nothing in the input buffer, don't ! * bother trying to parse and execute anything; just ! * send back a quick NullCommand response. ! */ ! if (IsUnderPostmaster) ! NullCommand(Remote); ! } ! else ! { ! /* ! * otherwise, process the input string. ! * ! * Note: transaction command start/end is now done within ! * pg_exec_query_string(), not here. ! */ ! if (log_statement_stats) ! ResetUsage(); ! pgstat_report_activity(parser_input->data); ! pg_exec_query_string(parser_input, ! whereToSendOutput, ! QueryContext); ! if (log_statement_stats) ! ShowUsage("QUERY STATISTICS"); ! } break; /* --- 1999,2021 ---- * 'Q' indicates a user query */ case 'Q': ! /* ! * otherwise, process the input string. ! * ! * Note: transaction command start/end is now done within ! * pg_exec_query_string(), not here. ! */ ! if (log_statement_stats) ! ResetUsage(); ! pgstat_report_activity(parser_input->data); ! pg_exec_query_string(parser_input, ! whereToSendOutput, ! QueryContext); ! if (log_statement_stats) ! ShowUsage("QUERY STATISTICS"); break; /*

view thread (25+ messages)  latest in thread

Message-ID: <200303210555.h2L5tKG10364@candle.pha.pa.us>
Permalink:  ../200303210555.h2L5tKG10364@candle.pha.pa.us/
Also on:    postgresql.org/message-id/200303210555.h2L5tKG10364@candle.pha.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: pgman@candle.pha.pa.us, tgl@sss.pgh.pa.us, lists@ghaering.de
  Subject: Re: I want to send comments to the backend!
  In-Reply-To: <200303210555.h2L5tKG10364@candle.pha.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox