microsoft/mssql-jdbc

getProcedures() does not return SPECIFIC_NAME

onacit opened this issue · 2 comments

Driver version

12.6.0.jre11

SQL Server version

mcr.microsoft.com/mssql/server:2022-latest

Client Operating System

Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
Java version: 21.0.2, vendor: Eclipse Adoptium, runtime: /Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
Default locale: en_KR, platform encoding: UTF-8
OS name: "mac os x", version: "14.3", arch: "aarch64", family: "mac"

JAVA/JVM version

Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
Java version: 21.0.2, vendor: Eclipse Adoptium, runtime: /Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
Default locale: en_KR, platform encoding: UTF-8
OS name: "mac os x", version: "14.3", arch: "aarch64", family: "mac"

Table schema

?

Problem description

The result of DatabaseMetaData#getProcedures does not contain SPECIFIC_NAME column.

Expected behavior

The result set should contain the column of SPECIFIC_NAME

Actual behavior

The column is missing.

Error message/stack trace

Any other details that can be helpful

JDBC trace logs


This is related to #849.
I'm writing a general library depends on the specification and the workaround explained on the issue is not applicable.

getProcedureColumns also missing the column

This has been requested before in #448 and #1491.

We're hesitant to make these changes as the potential performance impact (as mentioned in #849) would be quite large. An option is to introduce this as an optional change under a connection string option, but then the driver would be in the awkward position where the more compliant option is not the default one. Not to mention the work that would go into developing this option, not just for getProcedures or getProcedureColumns, but for all DatabaseMetadata methods that specify this extra column.

For the moment this will be marked as an enhancement, just like #448 and #1491 above, but its not clear when work on a SPECIFIC_NAME column for these methods would take place.