This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-java.git
The following commit(s) were added to refs/heads/main by this push:
new 033ecc3f1 GH-110: bind StringView/BinaryView for Flight SQL JDBC (#905)
033ecc3f1 is described below
commit 033ecc3f101de35063fb5db83ae5cbcccaee9409
Author: ViggoC <[email protected]>
AuthorDate: Thu Dec 4 17:30:46 2025 +0800
GH-110: bind StringView/BinaryView for Flight SQL JDBC (#905)
## What's Changed
Closes #110.
---------
Co-authored-by: 张林伟 <[email protected]>
---
.../accessor/ArrowFlightJdbcAccessorFactory.java | 8 +++++
.../ArrowFlightJdbcBinaryVectorAccessor.java | 8 +++++
.../text/ArrowFlightJdbcVarCharVectorAccessor.java | 8 +++++
.../impl/BinaryViewAvaticaParameterConverter.java | 8 ++++-
.../impl/Utf8ViewAvaticaParameterConverter.java | 9 +++++-
.../driver/jdbc/utils/AvaticaParameterBinder.java | 6 ++--
.../apache/arrow/driver/jdbc/utils/SqlTypes.java | 2 ++
.../ArrowFlightJdbcAccessorFactoryTest.java | 26 +++++++++++++++++
.../ArrowFlightJdbcVarCharVectorAccessorTest.java | 26 +++++++++++++++++
.../arrow/driver/jdbc/utils/ConvertUtilsTest.java | 34 ++++++++++++++++++++++
.../arrow/driver/jdbc/utils/SqlTypesTest.java | 4 +++
11 files changed, 135 insertions(+), 4 deletions(-)
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactory.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactory.java
index dad1fa5f7..bbfe88a78 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactory.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactory.java
@@ -68,6 +68,8 @@ import org.apache.arrow.vector.UInt8Vector;
import org.apache.arrow.vector.ValueVector;
import org.apache.arrow.vector.VarBinaryVector;
import org.apache.arrow.vector.VarCharVector;
+import org.apache.arrow.vector.ViewVarBinaryVector;
+import org.apache.arrow.vector.ViewVarCharVector;
import org.apache.arrow.vector.complex.DenseUnionVector;
import org.apache.arrow.vector.complex.FixedSizeListVector;
import org.apache.arrow.vector.complex.LargeListVector;
@@ -130,6 +132,9 @@ public class ArrowFlightJdbcAccessorFactory {
} else if (vector instanceof VarBinaryVector) {
return new ArrowFlightJdbcBinaryVectorAccessor(
(VarBinaryVector) vector, getCurrentRow, setCursorWasNull);
+ } else if (vector instanceof ViewVarBinaryVector) {
+ return new ArrowFlightJdbcBinaryVectorAccessor(
+ (ViewVarBinaryVector) vector, getCurrentRow, setCursorWasNull);
} else if (vector instanceof LargeVarBinaryVector) {
return new ArrowFlightJdbcBinaryVectorAccessor(
(LargeVarBinaryVector) vector, getCurrentRow, setCursorWasNull);
@@ -163,6 +168,9 @@ public class ArrowFlightJdbcAccessorFactory {
} else if (vector instanceof LargeVarCharVector) {
return new ArrowFlightJdbcVarCharVectorAccessor(
(LargeVarCharVector) vector, getCurrentRow, setCursorWasNull);
+ } else if (vector instanceof ViewVarCharVector) {
+ return new ArrowFlightJdbcVarCharVectorAccessor(
+ (ViewVarCharVector) vector, getCurrentRow, setCursorWasNull);
} else if (vector instanceof DurationVector) {
return new ArrowFlightJdbcDurationVectorAccessor(
(DurationVector) vector, getCurrentRow, setCursorWasNull);
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/binary/ArrowFlightJdbcBinaryVectorAccessor.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/binary/ArrowFlightJdbcBinaryVectorAccessor.java
index 30dfffce6..e71b6380a 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/binary/ArrowFlightJdbcBinaryVectorAccessor.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/binary/ArrowFlightJdbcBinaryVectorAccessor.java
@@ -27,6 +27,7 @@ import
org.apache.arrow.driver.jdbc.accessor.ArrowFlightJdbcAccessorFactory;
import org.apache.arrow.vector.FixedSizeBinaryVector;
import org.apache.arrow.vector.LargeVarBinaryVector;
import org.apache.arrow.vector.VarBinaryVector;
+import org.apache.arrow.vector.ViewVarBinaryVector;
/**
* Accessor for the Arrow types: {@link FixedSizeBinaryVector}, {@link
VarBinaryVector} and {@link
@@ -61,6 +62,13 @@ public class ArrowFlightJdbcBinaryVectorAccessor extends
ArrowFlightJdbcAccessor
this(vector::get, currentRowSupplier, setCursorWasNull);
}
+ public ArrowFlightJdbcBinaryVectorAccessor(
+ ViewVarBinaryVector vector,
+ IntSupplier currentRowSupplier,
+ ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
+ this(vector::get, currentRowSupplier, setCursorWasNull);
+ }
+
private ArrowFlightJdbcBinaryVectorAccessor(
ByteArrayGetter getter,
IntSupplier currentRowSupplier,
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessor.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessor.java
index ebebf6ca7..7b04e8934 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessor.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessor.java
@@ -35,6 +35,7 @@ import
org.apache.arrow.driver.jdbc.accessor.ArrowFlightJdbcAccessorFactory;
import org.apache.arrow.driver.jdbc.utils.DateTimeUtils;
import org.apache.arrow.vector.LargeVarCharVector;
import org.apache.arrow.vector.VarCharVector;
+import org.apache.arrow.vector.ViewVarCharVector;
import org.apache.arrow.vector.util.Text;
/** Accessor for the Arrow types: {@link VarCharVector} and {@link
LargeVarCharVector}. */
@@ -62,6 +63,13 @@ public class ArrowFlightJdbcVarCharVectorAccessor extends
ArrowFlightJdbcAccesso
this(vector::get, currentRowSupplier, setCursorWasNull);
}
+ public ArrowFlightJdbcVarCharVectorAccessor(
+ ViewVarCharVector vector,
+ IntSupplier currentRowSupplier,
+ ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
+ this(vector::get, currentRowSupplier, setCursorWasNull);
+ }
+
ArrowFlightJdbcVarCharVectorAccessor(
Getter getter,
IntSupplier currentRowSupplier,
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/BinaryViewAvaticaParameterConverter.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/BinaryViewAvaticaParameterConverter.java
index a035bbba4..d692f3937 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/BinaryViewAvaticaParameterConverter.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/BinaryViewAvaticaParameterConverter.java
@@ -17,6 +17,7 @@
package org.apache.arrow.driver.jdbc.converter.impl;
import org.apache.arrow.vector.FieldVector;
+import org.apache.arrow.vector.ViewVarBinaryVector;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.Field;
import org.apache.calcite.avatica.AvaticaParameter;
@@ -29,7 +30,12 @@ public class BinaryViewAvaticaParameterConverter extends
BaseAvaticaParameterCon
@Override
public boolean bindParameter(FieldVector vector, TypedValue typedValue, int
index) {
- throw new UnsupportedOperationException("Not implemented");
+ byte[] value = (byte[]) typedValue.toJdbc(null);
+ if (vector instanceof ViewVarBinaryVector) {
+ ((ViewVarBinaryVector) vector).setSafe(index, value);
+ return true;
+ }
+ return false;
}
@Override
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/Utf8ViewAvaticaParameterConverter.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/Utf8ViewAvaticaParameterConverter.java
index 076fefc42..c9d9f2926 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/Utf8ViewAvaticaParameterConverter.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/converter/impl/Utf8ViewAvaticaParameterConverter.java
@@ -17,8 +17,10 @@
package org.apache.arrow.driver.jdbc.converter.impl;
import org.apache.arrow.vector.FieldVector;
+import org.apache.arrow.vector.ViewVarCharVector;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.Field;
+import org.apache.arrow.vector.util.Text;
import org.apache.calcite.avatica.AvaticaParameter;
import org.apache.calcite.avatica.remote.TypedValue;
@@ -29,7 +31,12 @@ public class Utf8ViewAvaticaParameterConverter extends
BaseAvaticaParameterConve
@Override
public boolean bindParameter(FieldVector vector, TypedValue typedValue, int
index) {
- throw new UnsupportedOperationException("Utf8View not supported");
+ String value = (String) typedValue.toLocal();
+ if (vector instanceof ViewVarCharVector) {
+ ((ViewVarCharVector) vector).setSafe(index, new Text(value));
+ return true;
+ }
+ return false;
}
@Override
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/AvaticaParameterBinder.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/AvaticaParameterBinder.java
index 0fd99de53..8c98ee407 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/AvaticaParameterBinder.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/AvaticaParameterBinder.java
@@ -19,6 +19,7 @@ package org.apache.arrow.driver.jdbc.utils;
import java.util.List;
import
org.apache.arrow.driver.jdbc.client.ArrowFlightSqlClientHandler.PreparedStatement;
import
org.apache.arrow.driver.jdbc.converter.impl.BinaryAvaticaParameterConverter;
+import
org.apache.arrow.driver.jdbc.converter.impl.BinaryViewAvaticaParameterConverter;
import
org.apache.arrow.driver.jdbc.converter.impl.BoolAvaticaParameterConverter;
import
org.apache.arrow.driver.jdbc.converter.impl.DateAvaticaParameterConverter;
import
org.apache.arrow.driver.jdbc.converter.impl.DecimalAvaticaParameterConverter;
@@ -39,6 +40,7 @@ import
org.apache.arrow.driver.jdbc.converter.impl.TimeAvaticaParameterConverter
import
org.apache.arrow.driver.jdbc.converter.impl.TimestampAvaticaParameterConverter;
import
org.apache.arrow.driver.jdbc.converter.impl.UnionAvaticaParameterConverter;
import
org.apache.arrow.driver.jdbc.converter.impl.Utf8AvaticaParameterConverter;
+import
org.apache.arrow.driver.jdbc.converter.impl.Utf8ViewAvaticaParameterConverter;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.vector.FieldVector;
import org.apache.arrow.vector.VectorSchemaRoot;
@@ -208,7 +210,7 @@ public class AvaticaParameterBinder {
@Override
public Boolean visit(ArrowType.Utf8View type) {
- throw new UnsupportedOperationException("Utf8View is unsupported");
+ return new Utf8ViewAvaticaParameterConverter(type).bindParameter(vector,
typedValue, index);
}
@Override
@@ -223,7 +225,7 @@ public class AvaticaParameterBinder {
@Override
public Boolean visit(ArrowType.BinaryView type) {
- throw new UnsupportedOperationException("BinaryView is unsupported");
+ return new
BinaryViewAvaticaParameterConverter(type).bindParameter(vector, typedValue,
index);
}
@Override
diff --git
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/SqlTypes.java
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/SqlTypes.java
index 1b76ca0c9..5ba3957f8 100644
---
a/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/SqlTypes.java
+++
b/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/SqlTypes.java
@@ -107,12 +107,14 @@ public class SqlTypes {
}
break;
case Binary:
+ case BinaryView:
return Types.VARBINARY;
case FixedSizeBinary:
return Types.BINARY;
case LargeBinary:
return Types.LONGVARBINARY;
case Utf8:
+ case Utf8View:
return Types.VARCHAR;
case LargeUtf8:
return Types.LONGVARCHAR;
diff --git
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactoryTest.java
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactoryTest.java
index b56bf3c63..8b39041f0 100644
---
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactoryTest.java
+++
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorFactoryTest.java
@@ -46,6 +46,8 @@ import org.apache.arrow.vector.IntervalYearVector;
import org.apache.arrow.vector.LargeVarCharVector;
import org.apache.arrow.vector.ValueVector;
import org.apache.arrow.vector.VarCharVector;
+import org.apache.arrow.vector.ViewVarBinaryVector;
+import org.apache.arrow.vector.ViewVarCharVector;
import org.apache.arrow.vector.complex.DenseUnionVector;
import org.apache.arrow.vector.complex.MapVector;
import org.apache.arrow.vector.complex.StructVector;
@@ -239,6 +241,18 @@ public class ArrowFlightJdbcAccessorFactoryTest {
}
}
+ @Test
+ public void createAccessorForViewVarBinaryVector() {
+ try (ValueVector valueVector =
+ new ViewVarBinaryVector("",
rootAllocatorTestExtension.getRootAllocator())) {
+ ArrowFlightJdbcAccessor accessor =
+ ArrowFlightJdbcAccessorFactory.createAccessor(
+ valueVector, GET_CURRENT_ROW, (boolean wasNull) -> {});
+
+ assertTrue(accessor instanceof ArrowFlightJdbcBinaryVectorAccessor);
+ }
+ }
+
@Test
public void createAccessorForTimeStampVector() {
try (ValueVector valueVector =
rootAllocatorTestExtension.createTimeStampMilliVector()) {
@@ -340,6 +354,18 @@ public class ArrowFlightJdbcAccessorFactoryTest {
}
}
+ @Test
+ public void createAccessorForViewVarCharVector() {
+ try (ValueVector valueVector =
+ new ViewVarCharVector("",
rootAllocatorTestExtension.getRootAllocator())) {
+ ArrowFlightJdbcAccessor accessor =
+ ArrowFlightJdbcAccessorFactory.createAccessor(
+ valueVector, GET_CURRENT_ROW, (boolean wasNull) -> {});
+
+ assertTrue(accessor instanceof ArrowFlightJdbcVarCharVectorAccessor);
+ }
+ }
+
@Test
public void createAccessorForDurationVector() {
try (ValueVector valueVector =
diff --git
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessorTest.java
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessorTest.java
index a2f6fd586..82876f4aa 100644
---
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessorTest.java
+++
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/text/ArrowFlightJdbcVarCharVectorAccessorTest.java
@@ -24,6 +24,8 @@ import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;
@@ -46,6 +48,8 @@ import
org.apache.arrow.driver.jdbc.utils.ThrowableAssertionUtils;
import org.apache.arrow.vector.DateMilliVector;
import org.apache.arrow.vector.TimeMilliVector;
import org.apache.arrow.vector.TimeStampVector;
+import org.apache.arrow.vector.VarCharVector;
+import org.apache.arrow.vector.ViewVarCharVector;
import org.apache.arrow.vector.util.Text;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -695,4 +699,26 @@ public class ArrowFlightJdbcVarCharVectorAccessorTest {
final Class<?> clazz = accessor.getObjectClass();
assertThat(clazz, equalTo(String.class));
}
+
+ @Test
+ public void testViewVarcharVector() throws Exception {
+ try (VarCharVector varCharVector =
+ new VarCharVector("",
rootAllocatorTestExtension.getRootAllocator());
+ ViewVarCharVector viewVarCharVector =
+ new ViewVarCharVector("",
rootAllocatorTestExtension.getRootAllocator())) {
+ varCharVector.allocateNew(1);
+ viewVarCharVector.allocateNew(1);
+
+ ArrowFlightJdbcVarCharVectorAccessor varCharVectorAccessor =
+ new ArrowFlightJdbcVarCharVectorAccessor(varCharVector, () -> 0,
(boolean wasNull) -> {});
+ ArrowFlightJdbcVarCharVectorAccessor viewVarcharVectorAccessor =
+ new ArrowFlightJdbcVarCharVectorAccessor(
+ viewVarCharVector, () -> 0, (boolean wasNull) -> {});
+ assertNull(viewVarcharVectorAccessor.getString());
+
+ varCharVector.set(0, new Text("looooong_string"));
+ viewVarCharVector.set(0, new Text("looooong_string"));
+ assertEquals(varCharVectorAccessor.getString(),
viewVarcharVectorAccessor.getString());
+ }
+ }
}
diff --git
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ConvertUtilsTest.java
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ConvertUtilsTest.java
index b6fdc9969..f128ca7c7 100644
---
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ConvertUtilsTest.java
+++
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ConvertUtilsTest.java
@@ -69,6 +69,19 @@ public class ConvertUtilsTest {
.tableName("table1")
.build()
.getMetadataMap()),
+ null),
+ new Field(
+ "col2",
+ new FieldType(
+ true,
+ ArrowType.Utf8View.INSTANCE,
+ null,
+ new FlightSqlColumnMetadata.Builder()
+ .catalogName("catalog1")
+ .schemaName("schema1")
+ .tableName("table1")
+ .build()
+ .getMetadataMap()),
null));
final List<ColumnMetaData> expectedColumnMetaData =
@@ -78,6 +91,25 @@ public class ConvertUtilsTest {
.setCatalogName("catalog1")
.setSchemaName("schema1")
.setTableName("table1")
+ .setColumnName("col1")
+ .setType(
+ Common.AvaticaType.newBuilder()
+
.setId(SqlTypes.getSqlTypeIdFromArrowType(ArrowType.Utf8.INSTANCE))
+
.setName(SqlTypes.getSqlTypeNameFromArrowType(ArrowType.Utf8.INSTANCE))
+ .build())
+ .build()),
+ ColumnMetaData.fromProto(
+ Common.ColumnMetaData.newBuilder()
+ .setCatalogName("catalog1")
+ .setSchemaName("schema1")
+ .setTableName("table1")
+ .setColumnName("col2")
+ .setType(
+ Common.AvaticaType.newBuilder()
+
.setId(SqlTypes.getSqlTypeIdFromArrowType(ArrowType.Utf8View.INSTANCE))
+ .setName(
+
SqlTypes.getSqlTypeNameFromArrowType(ArrowType.Utf8View.INSTANCE))
+ .build())
.build()));
final List<ColumnMetaData> actualColumnMetaData =
@@ -95,6 +127,8 @@ public class ConvertUtilsTest {
assertThat(expectedColumnMetaData.catalogName,
equalTo(actualColumnMetaData.catalogName));
assertThat(expectedColumnMetaData.schemaName,
equalTo(actualColumnMetaData.schemaName));
assertThat(expectedColumnMetaData.tableName,
equalTo(actualColumnMetaData.tableName));
+ assertThat(expectedColumnMetaData.columnName,
equalTo(actualColumnMetaData.columnName));
+ assertThat(expectedColumnMetaData.type,
equalTo(actualColumnMetaData.type));
assertThat(expectedColumnMetaData.readOnly,
equalTo(actualColumnMetaData.readOnly));
assertThat(expectedColumnMetaData.autoIncrement,
equalTo(actualColumnMetaData.autoIncrement));
assertThat(expectedColumnMetaData.precision,
equalTo(actualColumnMetaData.precision));
diff --git
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/SqlTypesTest.java
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/SqlTypesTest.java
index a6dd6b327..d69c54929 100644
---
a/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/SqlTypesTest.java
+++
b/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/SqlTypesTest.java
@@ -40,9 +40,11 @@ public class SqlTypesTest {
assertEquals(Types.BINARY, getSqlTypeIdFromArrowType(new
ArrowType.FixedSizeBinary(1024)));
assertEquals(Types.VARBINARY, getSqlTypeIdFromArrowType(new
ArrowType.Binary()));
+ assertEquals(Types.VARBINARY, getSqlTypeIdFromArrowType(new
ArrowType.BinaryView()));
assertEquals(Types.LONGVARBINARY, getSqlTypeIdFromArrowType(new
ArrowType.LargeBinary()));
assertEquals(Types.VARCHAR, getSqlTypeIdFromArrowType(new
ArrowType.Utf8()));
+ assertEquals(Types.VARCHAR, getSqlTypeIdFromArrowType(new
ArrowType.Utf8View()));
assertEquals(Types.LONGVARCHAR, getSqlTypeIdFromArrowType(new
ArrowType.LargeUtf8()));
assertEquals(Types.DATE, getSqlTypeIdFromArrowType(new
ArrowType.Date(DateUnit.MILLISECOND)));
@@ -94,9 +96,11 @@ public class SqlTypesTest {
assertEquals("BINARY", getSqlTypeNameFromArrowType(new
ArrowType.FixedSizeBinary(1024)));
assertEquals("VARBINARY", getSqlTypeNameFromArrowType(new
ArrowType.Binary()));
+ assertEquals("VARBINARY", getSqlTypeNameFromArrowType(new
ArrowType.BinaryView()));
assertEquals("LONGVARBINARY", getSqlTypeNameFromArrowType(new
ArrowType.LargeBinary()));
assertEquals("VARCHAR", getSqlTypeNameFromArrowType(new ArrowType.Utf8()));
+ assertEquals("VARCHAR", getSqlTypeNameFromArrowType(new
ArrowType.Utf8View()));
assertEquals("LONGVARCHAR", getSqlTypeNameFromArrowType(new
ArrowType.LargeUtf8()));
assertEquals("DATE", getSqlTypeNameFromArrowType(new
ArrowType.Date(DateUnit.MILLISECOND)));