po 15. 3. 2021 v 18:18 odesÃlatel Julien Rouhaud <rjuju...@gmail.com> napsal:
> On Mon, Mar 15, 2021 at 06:05:52PM +0100, Pavel Stehule wrote: > > > > Possibility to work with a parser is one main reason for forking > postgres. > > Lot of interestings projects fail on the cost of maintaining their own > fork. > > > > Maybe a good enough possibility is the possibility to inject an own > parser > > called before Postgres parser. Then it can do a transformation from > "CREATE > > PIPE ..." to "SELECT extparse("CREATE PIPE()". There can be a switch if > > returned content is string for reparsing or already prepared AST. > > Having a hook that returns a reformatted query string would definitely be > easier to write compared to generating an AST, but the overhead of parsing > the > query twice plus deparsing it will probably make that approach way too > expensive in many usecases, so we shouldn't go that way. > yes - so it can be nice to have more possibilities. parsing is expensive - but on today computers, the cost of parsing is low - the optimization is significantly more expensive. I wrote some patches in this area (all rejected by Tom :)), and a lot of work can be done after parser and before the analysis stage. Probably, the parser hook is not good enough, there should be an analysis stage hook too.