sql-language-server icon indicating copy to clipboard operation
sql-language-server copied to clipboard

No completions offered for tables inside a CTE

Open joshbode opened this issue 1 year ago • 0 comments

When working with tables inside a CTE (aka WITH) no column completions are generated.

e.g. when the cursor is here (at the |)

SELECT
  x.|   -- completions generated correctly
FROM
  some_table x

however this doesn't work for me:

WITH v as (
  SELECT
    x.|   -- no completions generated
  FROM
    some_table x
)
SELECT
  v.*
FROM
  v

Possibly relevant log messages when the completions are not generated:

[2024-02-09T17:55:47.774] [DEBUG] default - WITH
[2024-02-09T17:55:47.774] [DEBUG] default - complete: WITH
[2024-02-09T17:55:47.774] [DEBUG] default - target: WITH

which may mean the completions aren't targeted to the SELECT.

Additionally, an exception is often being thrown here (even when the completions work and the SELECT is the target):

      if (_e.name !== 'SyntaxError') {
        throw _e
      }

since the exception that is coming from the PEG parser is named peg$SyntaxError, I think.

I am using:

  • Neovim (Nightly) with nvim-lspconfig
  • [email protected]
  • NodeJS v20.11.0
  • A BigQuery database

joshbode avatar Feb 09 '24 07:02 joshbode