Skip to content

Autocomplete/intellisense: support IRIS SQL specifically (vs. generic SQL) #37

Open
@isc-tleavitt

Description

@isc-tleavitt

vscode-sqltools uses the generic autocomplete parser from Hue - in plugins/intellisense/language-server.ts:
import sqlAutocompleteParser from 'gethue/parsers/genericAutocompleteParser.js';

This falls over on certain valid aspects of IRIS SQL syntax - e.g,. implicit joins (arrow syntax) and operators/functions that are ObjectScript-specific. (This is the actual root cause for what I observed in #32 .) Predictably, in a file using such syntax, autocomplete fails after the unrecognized string.

Fixing this would require an upstream change to allow a driver to provide its own autocomplete parser, then actually implementing such a parser (see: https://docs.gethue.com/developer/development/#sql-parsers). Theoretically existing concepts from the generic autocomplete parser would transfer (although it seems that reliance on the autocomplete parser in vscode-tools might run too deep to be generic; e.g., there's a reference to id.cte and we don't support CTEs in IRIS SQL at this point). From some poking around in the Hue docs I think we'd probably run into issues with arrow syntax specifically - the "table" context is dependent on metadata on the server (what's the type of the column?), not just the SQL syntax.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions