Hi, On Mon, Oct 03, 2022 at 06:00:12AM +0200, Pavel Stehule wrote: > ne 2. 10. 2022 v 22:52 odesÃlatel Daniel Gustafsson <dan...@yesql.se> > napsal: > > > > On 2 Oct 2022, at 18:04, Andres Freund <and...@anarazel.de> wrote: > > > On 2022-10-02 00:19:59 -0700, Andres Freund wrote: > > >> On 2022-10-01 23:56:59 -0700, Andres Freund wrote: > > >>> On 2022-09-12 09:58:37 +0200, Daniel Gustafsson wrote: > > >>>> Correct, fixed in the attached. > > >>> > > >>> Updated patch adding meson compatibility attached. > > >> > > >> Err, forgot to amend one hunk :( > > > > > > That fixed it on all platforms but windows, due to copy-pasto. I really > > should > > > have stopped earlier yesterday... > > > > Thanks for updating the patch! > > > > The parser in the original submission was -1'd by me, and the current > > version > > proposed as an alternative. This was subsequently -1'd as well but no > > updated > > patch with a rewritten parser has been posted. So this is now stalled > > again. > > > > You started rewriting it, but you didn't finish it. > > Unfortunately, there is not a clean opinion on using bison's parser for > this purpose. I understand that the complexity of this language is too low, > so the benefit of using bison's gramatic is low too. Personally, I have not > any problem using bison for this purpose. For this case, I think we compare > two similarly long ways, but unfortunately, customers that have a problem > with long command lines still have this problem. > > Can we go forward? Daniel is strongly against handwritten parser. Is there > somebody strongly against bison's based parser? There is not any other way.
I don't have a strong opinion either, but it seems that 2 people argued against a bison parser (vs only 1 arguing for) and the fact that the current habit is to rely on hand written parsers for simple cases (e.g. jsonapi.c / pg_parse_json()), it seems that we should go back to Pavel's original parser. I only had a quick look but it indeed seems trivial, it just maybe need a bit of refactoring to avoid some code duplication (getFiltersFromFile is duplicated, and getDatabaseExcludeFiltersFromFile could be removed if getFiltersFromFile knew about the 2 patterns).