Skip to content

Return precision values for non-decimal columns#367

Merged
staticlibs merged 1 commit intoduckdb:mainfrom
staticlibs:varchar_precision
Sep 12, 2025
Merged

Return precision values for non-decimal columns#367
staticlibs merged 1 commit intoduckdb:mainfrom
staticlibs:varchar_precision

Conversation

@staticlibs
Copy link
Collaborator

This PR makes ResultSetMetaData#getPrecision() to return non-zero values for integral numbers, floating point, date/time and string columns.

Unlike the DECIMAL type, where actual column precision is returned, for other types this call is expected to give a hint to a client software how much space the textual representation of the field is going to take. Previously returned 0 value appeared to cause problems in some of such clients.

Values returned are consistent with ones returned by Postgres.

Testing: new test added for all types.

Fixes: #340

This PR makes `ResultSetMetaData#getPrecision()` to return non-zero
values for integral numbers, floating point, date/time and string
columns.

Unlike the `DECIMAL` type, where actual column precision is returned,
for other types this call is expected to give a hint to a client
software how much space the textual representation of the field is
going to take. Previously returned 0 value appeared to cause problems
in some of such clients.

Values returned are consistent with ones returned by Postgres.

Testing: new test added for all types.

Fixes: duckdb#340
@staticlibs staticlibs merged commit 4ccafc4 into duckdb:main Sep 12, 2025
9 checks passed
@staticlibs staticlibs deleted the varchar_precision branch September 12, 2025 11:08
staticlibs added a commit to staticlibs/duckdb-java that referenced this pull request Sep 15, 2025
This is a backport of the PR duckdb#367 to `v1.4-andium` stable branch.

This PR makes `ResultSetMetaData#getPrecision()` to return non-zero
values for integral numbers, floating point, date/time and string
columns.

Unlike the `DECIMAL` type, where actual column precision is returned,
for other types this call is expected to give a hint to a client
software how much space the textual representation of the field is
going to take. Previously returned 0 value appeared to cause problems
in some of such clients.

Values returned are consistent with ones returned by Postgres.

Testing: new test added for all types.

Fixes: duckdb#340
staticlibs added a commit that referenced this pull request Sep 15, 2025
This is a backport of the PR #367 to `v1.4-andium` stable branch.

This PR makes `ResultSetMetaData#getPrecision()` to return non-zero
values for integral numbers, floating point, date/time and string
columns.

Unlike the `DECIMAL` type, where actual column precision is returned,
for other types this call is expected to give a hint to a client
software how much space the textual representation of the field is
going to take. Previously returned 0 value appeared to cause problems
in some of such clients.

Values returned are consistent with ones returned by Postgres.

Testing: new test added for all types.

Fixes: #340
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

getPrecision() for Varchar returns 0

1 participant