Thread

  1. psql tab-completion for new syntax

    Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp> — 2010-02-10T02:07:53Z

    We've added some new syntax in HEAD, but psql tab-completion is out of sync.
    Here is a patch to support the following syntax in tab-completion:
    
        - top-level DO
        - ALTER TABLE/INDEX/TABLESPACE SET/RESET with options
        - ALTER TABLE ALTER COLUMN SET/RESET with options
        - CREATE TRIGGER with events
    
    The fix is not a stopper to alpha release, but I'd like to
    add it before beta release. Comments welcome.
    
    Regards,
    ---
    Takahiro Itagaki
    NTT Open Source Software Center
    
  2. Re: psql tab-completion for new syntax

    Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp> — 2010-02-16T05:24:41Z

    Here is a patch to support new syntax in psql tab completion
    and fix bugs to complete after an open parenthesis.
    
    Supported additonal syntax are:
      - ALTER TABLE/INDEX/TABLESPACE SET/RESET with options
      - ALTER TABLE ALTER COLUMN SET/RESET with options
      - ALTER TABLE ALTER COLUMN SET STORAGE
      - CREATE TRIGGER with events
      - CREATE INDEX CONCURRENTLY
      - CREATE INDEX ON (without name)
      - CREATE INDEX ... USING with pg_am.amname instead of hard-corded names.
    
    Fixes bugs are:
      Bug 1: Double parenthesis
        =# INSERT INTO pgbench_history VALUES (<TAB>
        =# INSERT INTO pgbench_history VALUES ((      <= wrong
    
      Bug 2: We cannot complete words if no whitespaces around a parenthesis.
        =# CREATE INDEX idx ON pgbench_history( <TAB>
                                              ^ no whitespace here
    
      Bug 3: should be completed with "(" before columns.
        =# CREATE INDEX foo ON pgbench_accounts USING BTREE <TAB>
        abalance  aid       bid       filler    <= wrong, should be "("
    
    I adjusted previous_word() to split words not only with spaces but also
    with non-alphabets, and removed a hack with find_open_parenthesis().
    
    Comments?
    
    Regards,
    ---
    Takahiro Itagaki
    NTT Open Source Software Center