Skip to content

getProcedureColumns metadata wrong description of RETURNS columns [JDBC229] #278

@firebird-automations

Description

@firebird-automations

Submitted by: @mrotteveel

Is related to JDBC296
Relate to JDBC297
Relate to JDBC350

The AbstractDatabaseMetaData.getProcedureColumns() metadata describes the RETURNS columns as DatabaseMetaData.procedureColumnOut, this is conceptually incorrect as Firebird does not support OUT parameters. The correct description should be DatabaseMetaData.procedureColumnResult (or maybe DatabaseMetaData.procedureColumnReturn for executable procedures with a single return value).

Related to this: the JDBC javadoc states that the order of the getProcedureColumns() method should be:
1) The (single) return value (if any) with ORDINAL_POSITION 0
2) The procedure parameters (if any) with the ORDINAL_POSITION in order (starting with 1)
3) The (resultset) columns (if any) with the ORDINAL_POSITION in order (starting with 1)
Currently Jaybird returns the columns first, and then the parameters.

This description also potentially clashes with the information provided by the CallableStatement implementation of getParameterMetaData() (that, or changing this will clash).

Also research is needed if we need to differentiate between
1) Executable procedures
1a) With single return value
1b) With multiple return values
2) Selectable procedures

Deciding if something is executable or selectable is only available from ODS 11.1 or higher.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions