Skip to content

feat(csharp): SEA path does not implement GetTypeInfo or GetFunctions #569

Description

@eric-wang-1990

Problem

The SEA/REST path does not implement GetTypeInfo or GetFunctions, which the Thrift path supports.

  • The SEA metadata dispatcher StatementExecutionStatement.ExecuteMetadataCommandAsync (csharp/src/StatementExecution/StatementExecutionStatement.cs:1009-1022) only handles getcatalogs, getschemas, gettables, getcolumns, getcolumnsextended, getprimarykeys, getcrossreference. There is no gettypeinfo/getfunctions case; the default arm throws NotSupportedException($"Metadata command '{_sqlQuery}' is not supported") (line 1020).
  • A grep of StatementExecution*.cs finds zero references to GetTypeInfo/GetFunctions. The Thrift client has these RPCs, so this is a SEA-only gap.

There is no direct Thrift RPC equivalent in SEA/REST, so this needs protocol/API design (likely SQL-command-backed, e.g. SHOW FUNCTIONS for functions; a static/derived type table for type info) plus the corresponding ADBC API surface.

Context

Source: ADBC SEA Public Preview plan, driver-test-platform table ("P1 · Missing metadata API · GetTypeInfo, GetFunctions … no equivalent Thrift RPCs in SEA/REST + no ADBC API surface — needs protocol work").

Related but distinct: #236 (a broad Go-driver feature request for richer function/routine discovery). This issue is specifically about the C# SEA path throwing NotSupportedException for GetTypeInfo/GetFunctions that Thrift already answers.

Expected

GetTypeInfo and GetFunctions return meaningful results on SEA (or a documented, consistent behavior), matching Thrift where feasible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .NET codeenhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions