Prev: [HACKERS] Is there anyway to get list of table name, before raw parser isanalyze?
Next: Winflex
From: Andrew Dunstan on 30 May 2010 00:44 Mohammad Heykal Abdillah wrote: > Hi all, > > Right now i am trying to understand how SQL parser is work. > > My question is there anyway to get list of table name and its atribut > before raw parser is analyze? > > Because i like to understand how PostgreSQL "break-down" the asterik at > target list, specialy in "natural join" case where PostgreSQL can give > query result that have unabigous attribut and match the right join key. > > > AIUI, expanding '*' is not done in the parser. The parser just makes an A_star node. See src/backend/gram.y for the parser spec. Maybe you need to explain what exactly you're trying to do. cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
From: Andrew Dunstan on 30 May 2010 07:57 Mohammad Heykal Abdillah wrote: > On Min, 2010-05-30 at 00:44 -0400, Andrew Dunstan wrote: > >> Mohammad Heykal Abdillah wrote: >> >>> Hi all, >>> >>> Right now i am trying to understand how SQL parser is work. >>> >>> My question is there anyway to get list of table name and its atribut >>> before raw parser is analyze? >>> >>> Because i like to understand how PostgreSQL "break-down" the asterik at >>> target list, specialy in "natural join" case where PostgreSQL can give >>> query result that have unabigous attribut and match the right join key. >>> >>> >>> >>> >> AIUI, expanding '*' is not done in the parser. The parser just makes an >> A_star node. >> >> See src/backend/gram.y for the parser spec. >> >> Maybe you need to explain what exactly you're trying to do. >> >> cheers >> >> andrew >> > > Yes that i know, expanding '*' is done in analyzer part. I am try to do > is, move the expanding process to "before" raw_parser that produce by > gram.y is processed by analyzer. Like this : > > sql query -> gram.y -> raw_parse_tree -> (expand the '*') -> analyze > > In this way analyzer part only receiving the expanded '*' parse tree > they wont expand the '*' again. I am aksing this because i didnt know > how to (analyzer) scan database so it can return list of attribut from > table. I have read the source code, and try manualy to replicate the > process (from what i got is the RTE function) with no result. > > Ok, but why? What are you trying to achieve? cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
|
Pages: 1 Prev: [HACKERS] Is there anyway to get list of table name, before raw parser isanalyze? Next: Winflex |