> I cannot to imagine extensible parser based on bison. But the parser > can be replaced by custom parser. > > Some like pgpool or pgbouncer does. The extension can assign own > parser. Custom parser will be called first, and the integrated parser > will be used from extension or as fallback. This can helps with new > statements for background workers, theoretically it can helps with > extending PostgreSQL SQL. Custom parser can do translation from SQL1 > to SQL2 dialect, or can do translation from SQL1 to internal calls. > The custom parser usually should not implement full SQL - only few > statements. > > Is it this idea more workable?
What if there are two or more contribs that extend the parser? Can we be sure that these contribs will not conflict?
It depends - can be allowed only one - like plpgsql extensions, or can be serialized like pg log extensions