From 6d0ebbca1ea0244c1fd526be9b14b8b79c7198e8 Mon Sep 17 00:00:00 2001 From: yonarw Date: Wed, 26 Jun 2024 15:15:51 +0200 Subject: [PATCH] community: SAP HANA Vector Engine fix for latest HANA release (#23516) - **Description:** This PR fixes an issue with SAP HANA Cloud QRC03 version. In that version the number to indicate no length being set for a vector column changed from -1 to 0. The change in this PR support both behaviours (old/new). - **Dependencies:** No dependencies have been introduced. - **Tests**: The change is covered by previous unit tests. --- .../langchain_community/vectorstores/hanavector.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/community/langchain_community/vectorstores/hanavector.py b/libs/community/langchain_community/vectorstores/hanavector.py index 724c3d93b2a..adf76ee86f2 100644 --- a/libs/community/langchain_community/vectorstores/hanavector.py +++ b/libs/community/langchain_community/vectorstores/hanavector.py @@ -125,7 +125,7 @@ class HanaDB(VectorStore): f'"{self.metadata_column}" NCLOB, ' f'"{self.vector_column}" REAL_VECTOR ' ) - if self.vector_column_length == -1: + if self.vector_column_length in [-1, 0]: sql_str += ");" else: sql_str += f"({self.vector_column_length}));" @@ -186,7 +186,9 @@ class HanaDB(VectorStore): f"Column {column_name} has the wrong type: {rows[0][0]}" ) # Check length, if parameter was provided - if column_length is not None: + # Length can either be -1 (QRC01+02-24) or 0 (QRC03-24 onwards) + # to indicate no length constraint being present. + if column_length is not None and column_length > 0: if rows[0][1] != column_length: raise AttributeError( f"Column {column_name} has the wrong length: {rows[0][1]}"