db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: Extracting dependencies from SQL statements
Date Tue, 09 Mar 2010 16:16:58 GMT
Hi Pavel,

Some comments inline...

Pavel Bortnovskiy wrote:
>
> Thank you, Rick for your expedient response.
>
> Your comments to DERBY-3946 indicate that I need to apply the patch 
> and build Derby. Is it possible to avoid? (I am currently using Derby 
> version 10.5.3.0).
The initial comment on the issue was confusing. This puzzled someone 
else last month. I have edited that first comment to make it clear that 
the patch was committed a long time ago and was built into both 10.5.1 
and 10.5.3. So there is no need to apply the patch.
>
> I tried to compile only TreeWalker.java and ASTParser.java while 
> linking with Derby's jars, but the build was unsuccessful, as many 
> classes weren't found.
> Would you be able to advise, please?
I am able to compile ASTParser against both the production and debug 
jars. Note that ASTParser must be run against the debug jars. I have 
added this warning to the initial comment on the JIRA.

Could you include the compiler errors you are seeing? That may help us 
diagnose this problem.

Thanks,
-Rick
>
> Thanks,
> Pavel.
>
>
>
>
>
>
> *Rick Hillegas <Richard.Hillegas@Sun.COM>*
> Sent by: Richard.Hillegas@Sun.COM
>
> 03/09/2010 08:35 AM
> Please respond to
> "Derby Discussion" <derby-user@db.apache.org>
>
>
> 	
> To
> 	Derby Discussion <derby-user@db.apache.org>
> cc
> 	
> Subject
> 	Re: Extracting dependencies from SQL statements
>
>
>
> 	
>
>
>
>
>
> Hi Pavel,
>
> I don't know of an easy way to do this. You could run the statement
> through the Derby parser to get the parsed representation, the Abstract
> Syntax Tree. Then you could write a Visitor to walk the AST, looking for
> the nodes which represent tables. See the following JIRAs for some
> pointers on how to produce and walk the AST: DERBY-3946 and DERBY-791.
>
> Unfortunately, there is no systematic primer on the AST nodes
> themselves. All we have is the javadoc for the package
> org.apache.derby.impl.sql.compile.
>
> Hope this helps,
> -Rick
>
> Pavel Bortnovskiy wrote:
> >
> > Hello:
> >
> > is it possible to use Derby's SQL parser to "extract" dependencies
> > from a given SQL statement?
> > (or access the parser once the statement has been parsed).
> >
> > Whether it's a simple SELECT or a JOIN, UNION or a more complex
> > statement, I would like to get a list of tables that this statement
> > would depend on.
> > Looking for FROM clauses and attempting to do the parsing myself seems
> > like a difficult, error prone and impractical way to approach this.
> >
> > Any suggestions, please?
> >
> > Thanks,
> > Pavel.
> >
> >
> >
> > Jefferies archives and monitors outgoing and incoming e-mail. The
> > contents of this email, including any attachments, are confidential to
> > the ordinary user of the email address to which it was addressed. If
> > you are not the addressee of this email you may not copy, forward,
> > disclose or otherwise use it or any part of it in any form whatsoever.
> > This email may be produced at the request of regulators or in
> > connection with civil litigation. Jefferies accepts no liability for
> > any errors or omissions arising as a result of transmission. Use by
> > other than intended recipients is prohibited.  In the United Kingdom,
> > Jefferies operates as Jefferies International Limited; registered in
> > England: no. 1978621; registered office: Vintners Place, 68 Upper
> > Thames Street, London EC4V 3BJ.  Jefferies International Limited is
> > authorised and regulated by the Financial Services Authority.
>
>
>
>
>
>
> Jefferies archives and monitors outgoing and incoming e-mail. The 
> contents of this email, including any attachments, are confidential to 
> the ordinary user of the email address to which it was addressed. If 
> you are not the addressee of this email you may not copy, forward, 
> disclose or otherwise use it or any part of it in any form whatsoever. 
> This email may be produced at the request of regulators or in 
> connection with civil litigation. Jefferies accepts no liability for 
> any errors or omissions arising as a result of transmission. Use by 
> other than intended recipients is prohibited.  In the United Kingdom, 
> Jefferies operates as Jefferies International Limited; registered in 
> England: no. 1978621; registered office: Vintners Place, 68 Upper 
> Thames Street, London EC4V 3BJ.  Jefferies International Limited is 
> authorised and regulated by the Financial Services Authority. 


Mime
View raw message