Re: Convert stmt back into queryString - Mailing list pgsql-hackers

From Dan Colish
Subject Re: Convert stmt back into queryString
Date
Msg-id 20090805034254.GA24114@funkstrom.spiretech.com
Whole thread Raw
In response to Re: Convert stmt back into queryString  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Tue, Aug 04, 2009 at 10:55:07PM -0400, Tom Lane wrote:
> Dan Colish <dan@unencrypted.org> writes:
> > On Tue, Aug 04, 2009 at 10:00:24PM -0400, Tom Lane wrote:
> >> Hmm, you mean a Query, or a raw unanalyzed InsertStmt?
> 
> > In this case, its a raw InsertStmt. I would like to pass this back to
> > parse_analyze, but I need to have a queryString to go with that call, so
> > crafting a function to rate that seems to be the only way, atm.
> 
> Hm, so you have an InsertStmt but not the text it was generated from?
> Where?  By and large the design plan is that the source text should
> still be available anyplace that's dealing with raw parsetrees.
> 
> I believe you can just pass NULL as the querystring --- the only thing
> you lose from that is syntax location pointers in error messages.  But
> in ordinary situations you shouldn't have to.  (Also, the fact that
> that's what the string is used for means that ginning up a string from
> the nodetree is a bit pointless.  It won't contain the detail that it's
> meant to provide.)
> 
>             regards, tom lane


Well the problem with declaring it null is that the first parse_analyze
Assert will fail.     
Assert(sourceText != NULL); /* required as of 8.4 */

What I am doing here is taking one Create stmt of a new type and
breaking it up into the various operations I need it to perform. One is
a this InsertStmt. Another is a CreateStmt. I'll also need to add
CreateTrigStmt's. 

Recently, I've been thinking this would be best to do
in gram.y and then pass those parts as distinct nodes. I still might hit
this queryString issue although. I haven't thought about that enough.

--
--Dan




pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: the case for machine-readable error fields
Next
From: Pavel Stehule
Date:
Subject: Re: Patch for 8.5, transformationHook