@@ -270,6 +270,7 @@ public static void checkFieldData(FieldType fieldSchema, List<?> values, boolean
270270 break ;
271271 case VarChar :
272272 case String :
273+ case Geometry :
273274 case Timestamptz :
274275 for (Object value : values ) {
275276 if (checkNullableFieldData (fieldSchema , value , verifyElementType )) {
@@ -419,6 +420,7 @@ public static Object checkFieldValue(String fieldName, DataType dataType, DataTy
419420 return value .getAsDouble (); // return double for genFieldData()
420421 case VarChar :
421422 case String :
423+ case Geometry :
422424 case Timestamptz :
423425 if (!(value .isJsonPrimitive ())) {
424426 throw new ParamException (String .format (errMsgs .get (dataType ), fieldName ));
@@ -466,7 +468,6 @@ public static List<Object> convertJsonArray(JsonArray jsonArray, DataType elemen
466468 case Double :
467469 return JsonUtils .fromJson (jsonArray , new TypeToken <List <Double >>() {}.getType ());
468470 case VarChar :
469- case Timestamptz :
470471 return JsonUtils .fromJson (jsonArray , new TypeToken <List <String >>() {}.getType ());
471472 default :
472473 throw new ParamException (String .format ("Unsupported element type of Array field '%s'" , fieldName ));
@@ -1376,6 +1377,11 @@ public static ScalarField genScalarField(DataType dataType, DataType elementType
13761377 StringArray stringArray = StringArray .newBuilder ().addAllData (strings ).build ();
13771378 return ScalarField .newBuilder ().setStringData (stringArray ).build ();
13781379 }
1380+ case Geometry : {
1381+ List <String > strings = objects .stream ().map (p -> (p == null ) ? null : (String ) p ).collect (Collectors .toList ());
1382+ GeometryWktArray wktArray = GeometryWktArray .newBuilder ().addAllData (strings ).build ();
1383+ return ScalarField .newBuilder ().setGeometryWktData (wktArray ).build ();
1384+ }
13791385 case JSON : {
13801386 List <ByteString > byteStrings = objects .stream ().map (p -> (p == null ) ? null : ByteString .copyFromUtf8 (p .toString ()))
13811387 .collect (Collectors .toList ());
@@ -1509,6 +1515,7 @@ public static ValueField objectToValueField(Object obj, DataType dataType) {
15091515 break ;
15101516 case VarChar :
15111517 case String :
1518+ case Geometry :
15121519 case Timestamptz :
15131520 if (obj instanceof String ) {
15141521 return builder .setStringData ((String ) obj ).build ();
@@ -1546,6 +1553,7 @@ public static Object valueFieldToObject(ValueField value, DataType dataType) {
15461553 return value .getBoolData ();
15471554 case VarChar :
15481555 case String :
1556+ case Geometry :
15491557 case Timestamptz :
15501558 return value .getStringData ();
15511559 case JSON :
0 commit comments