Skip to content

Commit 65cede8

Browse files
iroquetaBeta Bot
authored andcommitted
Cherry pick branch 'genexuslabs:HandleNullEmbeddings' into beta
1 parent b37b170 commit 65cede8

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

java/src/main/java/com/genexus/db/GXEmbedding.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ public GXEmbedding(String model, int dimensions) {
3333
public GXEmbedding(Float[] embedding, String model, int dimensions) {
3434
this.model = model;
3535
this.dimensions = dimensions;
36-
this.embedding = Arrays.asList(embedding);
36+
if (embedding == null)
37+
this.embedding = new ArrayList<>(Collections.nCopies(dimensions, 0.0f));
38+
else
39+
this.embedding = Arrays.asList(embedding);
3740
}
3841

3942
public GXEmbedding(List<Float> embedding) {

java/src/main/java/com/genexus/db/driver/GXResultSet.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -837,10 +837,20 @@ public Float[] getGxembedding (int columnIndex) throws SQLException
837837
if (DEBUG )
838838
log(GXDBDebug.LOG_MAX, "Warning: getEmbedding");
839839

840-
if (con.getDBMS().getId() == GXDBMS.DBMS_POSTGRESQL)
841-
return convertVectorStringToFloatArray(result.getArray(columnIndex).toString());
842-
else
843-
return byteArrayToFloatObjectArray(result.getBytes(columnIndex));
840+
if (con.getDBMS().getId() == GXDBMS.DBMS_POSTGRESQL) {
841+
Object array = result.getArray(columnIndex);
842+
if (array == null)
843+
return null;
844+
else
845+
return convertVectorStringToFloatArray(array.toString());
846+
}
847+
else {
848+
byte[] bytes = result.getBytes(columnIndex);
849+
if (bytes == null)
850+
return null;
851+
else
852+
return byteArrayToFloatObjectArray(bytes);
853+
}
844854
}
845855

846856
private static Float[] byteArrayToFloatObjectArray(byte[] bytes) {

0 commit comments

Comments
 (0)