From 8f9ce9b0657151ae204c35be8b9c517e77b43ec1 Mon Sep 17 00:00:00 2001 From: machavan Date: Tue, 11 Feb 2025 16:58:57 +0530 Subject: [PATCH 1/4] Perf fix 1 - Add a null value check upfront in dtv::getValue --- src/main/java/com/microsoft/sqlserver/jdbc/dtv.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java index 9ba2e83ce..f72b77478 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java @@ -246,8 +246,11 @@ final JavaType getJavaType() { Object getValue(JDBCType jdbcType, int scale, InputStreamGetterArgs streamGetterArgs, Calendar cal, TypeInfo typeInfo, CryptoMetadata cryptoMetadata, TDSReader tdsReader, SQLServerStatement statement) throws SQLServerException { - if (null == impl) + if (null == impl) { impl = new ServerDTVImpl(); + } else if (impl.isNull()) { + return null; + } return impl.getValue(this, jdbcType, scale, streamGetterArgs, cal, typeInfo, cryptoMetadata, tdsReader, statement); } From d7a790ac27ae0f176037ec4d9368246403307209 Mon Sep 17 00:00:00 2001 From: machavan Date: Tue, 11 Feb 2025 17:03:39 +0530 Subject: [PATCH 2/4] Formatting change --- src/main/java/com/microsoft/sqlserver/jdbc/dtv.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java index f72b77478..d220f0165 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java @@ -249,7 +249,7 @@ Object getValue(JDBCType jdbcType, int scale, InputStreamGetterArgs streamGetter if (null == impl) { impl = new ServerDTVImpl(); } else if (impl.isNull()) { - return null; + return null; } return impl.getValue(this, jdbcType, scale, streamGetterArgs, cal, typeInfo, cryptoMetadata, tdsReader, statement); From 9e0eec65e51b69455a85107640b8e7c8590ac340 Mon Sep 17 00:00:00 2001 From: machavan Date: Tue, 11 Feb 2025 17:04:16 +0530 Subject: [PATCH 3/4] Formatting change --- src/main/java/com/microsoft/sqlserver/jdbc/dtv.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java index d220f0165..c15b96499 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java @@ -246,9 +246,9 @@ final JavaType getJavaType() { Object getValue(JDBCType jdbcType, int scale, InputStreamGetterArgs streamGetterArgs, Calendar cal, TypeInfo typeInfo, CryptoMetadata cryptoMetadata, TDSReader tdsReader, SQLServerStatement statement) throws SQLServerException { - if (null == impl) { + if (null == impl){ impl = new ServerDTVImpl(); - } else if (impl.isNull()) { + } else if (impl.isNull()){ return null; } return impl.getValue(this, jdbcType, scale, streamGetterArgs, cal, typeInfo, cryptoMetadata, tdsReader, From 01e79e9c29885ce8eecbdc07a6be6dd7a4e60248 Mon Sep 17 00:00:00 2001 From: machavan Date: Tue, 11 Feb 2025 17:05:09 +0530 Subject: [PATCH 4/4] Formatting change --- src/main/java/com/microsoft/sqlserver/jdbc/dtv.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java index c15b96499..d220f0165 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java @@ -246,9 +246,9 @@ final JavaType getJavaType() { Object getValue(JDBCType jdbcType, int scale, InputStreamGetterArgs streamGetterArgs, Calendar cal, TypeInfo typeInfo, CryptoMetadata cryptoMetadata, TDSReader tdsReader, SQLServerStatement statement) throws SQLServerException { - if (null == impl){ + if (null == impl) { impl = new ServerDTVImpl(); - } else if (impl.isNull()){ + } else if (impl.isNull()) { return null; } return impl.getValue(this, jdbcType, scale, streamGetterArgs, cal, typeInfo, cryptoMetadata, tdsReader,