Re: Making tab-complete.c easier to maintain - Mailing list pgsql-hackers
From | David Fetter |
---|---|
Subject | Re: Making tab-complete.c easier to maintain |
Date | |
Msg-id | 20151022221425.GB22539@fetter.org Whole thread Raw |
In response to | Re: Making tab-complete.c easier to maintain (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Making tab-complete.c easier to maintain
(Tom Lane <tgl@sss.pgh.pa.us>)
|
List | pgsql-hackers |
On Thu, Oct 22, 2015 at 02:36:53PM -0700, Tom Lane wrote: > Robert Haas <robertmhaas@gmail.com> writes: > > On Wed, Oct 21, 2015 at 8:54 PM, Thomas Munro > > <thomas.munro@enterprisedb.com> wrote: > >> (Apologies for sending so many versions. tab-complete.c keeps moving > >> and I want to keep a version that applies on top of master out there, > >> for anyone interested in looking at this. As long as no one objects > >> and there is interest in the patch, I'll keep doing that.) > > > I don't want to rain on the parade since other people seem to like > > this, but I'm sort of unimpressed by this. Yes, it removes >1000 > > lines of code, and that's not nothing. But it's all mechanical code, > > so, not to be dismissive, but who really cares? Is it really worth > > replacing the existing notation that we all know with a new one that > > we have to learn? I'm not violently opposed if someone else wants to > > commit this, but I'm unexcited about it. > > What I would like is to find a way to auto-generate basically this entire > file from gram.y. I've been hoping we could use a principled approach for years. My fondest hope along that line would also involve catalog access, so it could correctly tab-complete user-defined things, but I have the impression that the catalog access variant is "much later" even if autogeneration from gram.y is merely "soon." I'd love to be wrong about that. > That would imply going over to something at least > somewhat parser-based, instead of the current way that is more or less > totally ad-hoc. That would be a very good thing though, because the > current way gives wrong answers not-infrequently, even discounting cases > that it's simply not been taught about. Indeed. > I have no very good idea how to do that, though. Bison does have a > notion of which symbols are possible as the next symbol at any given > parse point, but it doesn't really make that accessible. There's a lack > of cooperation on the readline side too: we'd need to be able to see the > whole query buffer not just the current line. This may be on point: http://stackoverflow.com/questions/161495/is-there-a-nice-way-of-handling-multi-line-input-with-gnu-readline I suspect we might have to stop pretending to support alternatives to libreadline if we went that direction, not that that would necessarily be a bad idea. Cheers, David. -- David Fetter <david@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fetter@gmail.com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate
pgsql-hackers by date: