Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
1b2d27f
Initial commit
Feb 15, 2018
c482b50
Added necessary code for JDBC to Arrow schema creation and Arrow vect…
atuldambalkar Feb 18, 2018
e462f80
Started adding required testcases related code.
atuldambalkar Feb 21, 2018
89d02bf
Added *.yml under exclude list.
Feb 21, 2018
c9d2727
Added *.properties under exclude list.
atuldambalkar Feb 21, 2018
b003abb
Added test case code - first cut.
atuldambalkar Feb 21, 2018
134e339
Merge branch 'master' of https://github.com/apache/arrow
Feb 21, 2018
333bc01
Code changes to create poper vector objects.
atuldambalkar Feb 22, 2018
32fa968
Code changes to create poper vector objects.
atuldambalkar Feb 22, 2018
1e5c584
Code changes to allocate memory for the vectors before adding objects.
atuldambalkar Feb 23, 2018
127b4fb
Fixed code to handle dataset size.
atuldambalkar Feb 23, 2018
8e2b7f5
Removed unused import.
atuldambalkar Feb 23, 2018
772ae96
Test
Feb 23, 2018
a556695
Merge pull request #1 from atuldambalkar1/master
atuldambalkar Feb 23, 2018
e3c490d
Initial commit
Feb 15, 2018
df444ad
Added necessary code for JDBC to Arrow schema creation and Arrow vect…
atuldambalkar Feb 18, 2018
15f281f
Started adding required testcases related code.
atuldambalkar Feb 21, 2018
a32f788
Added *.yml under exclude list.
Feb 21, 2018
1b4175f
Added *.properties under exclude list.
atuldambalkar Feb 21, 2018
4c706f5
Added test case code - first cut.
atuldambalkar Feb 21, 2018
9ead27d
Code changes to create poper vector objects.
atuldambalkar Feb 22, 2018
73b0198
Code changes to create poper vector objects.
atuldambalkar Feb 22, 2018
c97e910
Code changes to allocate memory for the vectors before adding objects.
atuldambalkar Feb 23, 2018
9459221
Fixed code to handle dataset size.
atuldambalkar Feb 23, 2018
5c1f5f2
Removed unused import.
atuldambalkar Feb 23, 2018
f76ac48
Test
Feb 23, 2018
a4d2b32
Removed the size parameter from the API.
atuldambalkar Feb 23, 2018
5fb446c
Merge remote-tracking branch 'origin/master'
atuldambalkar Feb 24, 2018
7f70a67
Added doc comment.
atuldambalkar Feb 24, 2018
c2ac474
Committed JdbcToArrowTest.java with a new method to test commit and p…
YashpalThakur Feb 27, 2018
f834c77
added missing import statement
YashpalThakur Feb 27, 2018
e1c1078
Merge remote-tracking branch 'upstream/master'
atuldambalkar Feb 27, 2018
378f660
Merge pull request #2 from YashpalThakur/master
atuldambalkar Mar 1, 2018
ba8156d
Merge branch 'master' of https://github.com/atuldambalkar/arrow
atuldambalkar Mar 1, 2018
fdb9d71
Added null checks for the JDBC to Arrow conversion.
atuldambalkar Mar 12, 2018
30a5341
Merge remote-tracking branch 'upstream/master'
atuldambalkar Mar 12, 2018
ff4c79b
Test
atuldambalkar Mar 12, 2018
646eba6
Changed the build version to 0.10.0-SNAPSHOT
atuldambalkar Mar 12, 2018
8c21902
Added necessary assertions.
atuldambalkar Mar 12, 2018
f5e95d2
Renamed a file.
atuldambalkar Mar 12, 2018
1dd9079
Renamed a file.
atuldambalkar Mar 12, 2018
5c56cf7
Added assertion related test cases for various vector types.
atuldambalkar Mar 13, 2018
eff855a
Fixed a typo in test file name.
atuldambalkar Mar 13, 2018
230ba4a
Added test case for testing all the H2 data types in the same sql query.
atuldambalkar Mar 13, 2018
f955614
Fixed doc comment.
atuldambalkar Mar 13, 2018
6911c40
Fixed a bug while creating VarBinary, VarChar vector types.
atuldambalkar Mar 13, 2018
f624bce
Added test cases for bool, tinyint, smallint and bigint data types..
atuldambalkar Mar 13, 2018
3bb513a
Added doc comment.
atuldambalkar Mar 13, 2018
8e25761
Added doc comment.
atuldambalkar Mar 13, 2018
a007f31
Fixed typo in doc comment.
atuldambalkar Mar 13, 2018
6641ad4
Removed unused imports.
atuldambalkar Mar 13, 2018
bffbe13
Added ArrowDataFetcher and Test classes.
atuldambalkar Mar 13, 2018
29b40cd
Added ASF 2.0 license text.
atuldambalkar Mar 13, 2018
f2c4ae0
Added test cases for ArrowDataFetcher.
atuldambalkar Mar 13, 2018
d0e55f9
Added documentation comment.
atuldambalkar Mar 13, 2018
f5f6efe
Added documentation comment.
atuldambalkar Mar 13, 2018
8a218c4
Added ASF 2.0 license text.
atuldambalkar Mar 14, 2018
1441d3b
Added support for NCHAR, NVARCHAR and LONGNVARCHAR.
atuldambalkar Mar 14, 2018
3b99621
Fixed a typo in doc comment.
atuldambalkar Mar 14, 2018
5a59278
Added JdbcToArrowTestHelper as static import.
atuldambalkar Mar 14, 2018
a6cc2fe
Fixed test cases related to time and timestamp to use the timezone.
atuldambalkar Mar 16, 2018
76c1efb
Moved H2 test cases under h2 directory.
atuldambalkar Mar 16, 2018
7f8f613
Fxied test case for date with timezone.
atuldambalkar Mar 16, 2018
1d0f29b
Fxied test case for date with timezone.
atuldambalkar Mar 16, 2018
8b52507
Added maven plugin to set timezone during Junit test execution.
atuldambalkar Mar 16, 2018
654325b
Added *.yml extension.
atuldambalkar Mar 16, 2018
63f7735
Added *.properties extension.
atuldambalkar Mar 16, 2018
68c3a61
Removed unused dependency.
atuldambalkar Mar 19, 2018
69d5202
Added license notice header to YAML and PROPERTIES files instead of e…
atuldambalkar Mar 23, 2018
1400fc8
Removed earlier added YAML and PROPERTIES extensions from exclusions.
atuldambalkar Mar 23, 2018
fe1f27d
Fixed compilation errors in PR build due to project version.
atuldambalkar Mar 23, 2018
3b4ebc5
Merge remote-tracking branch 'upstream/master'
atuldambalkar Mar 23, 2018
c5b3f56
Updated source from remote upstream for version 0.10.0-SNAPSHOT
atuldambalkar Mar 23, 2018
00d2f11
Removed a .txt file which was causing rat failure.
atuldambalkar Mar 23, 2018
6556a44
Code changes based on PR review comments.
atuldambalkar Apr 4, 2018
8b23396
files committed after making changes for review comment implementation
Apr 6, 2018
e55cb48
files committed after making changes for review comment implementation
Apr 6, 2018
fbd84fb
File cimmitted after making changes for Blob and Clobe issue
Apr 10, 2018
2c56d59
File committed for Blob and Clob issue and also for moving typecastin…
Apr 10, 2018
b8dce96
File committed for Blob and Clob issue and also for moving typecastin…
Apr 10, 2018
85a2354
added new test class for INT values
Apr 10, 2018
e1ed84d
Committed this class for new test class
Apr 10, 2018
f757164
files committed for reverting Blob and Clob related changes
Apr 11, 2018
540f69b
File/s committed for @Parameterized Junit Test case related changes
Apr 11, 2018
66f19e5
File/s committed for @Parameterized Junit Test case related changes
Apr 11, 2018
4830800
File/s committed for @Parameterized Junit Test case related changes
Apr 11, 2018
675a570
Code changes based on PR review comments.
atuldambalkar Apr 12, 2018
2b6b720
Files committed for review comment implementation
Apr 13, 2018
32bfb1f
Files committed for @Parameterized testcase changes
Apr 13, 2018
bafbd1a
Files committed for @Parameterized testcase changes
Apr 13, 2018
09b526e
Files committed for @Parameterized testcase changes
Apr 13, 2018
7320cdc
Files committed for @Parameterized testcase changes
Apr 13, 2018
0707a0c
Delete TestData.java file as it is not required
YashpalThakur Apr 16, 2018
af43943
Removed this file as new one is created
YashpalThakur Apr 16, 2018
f3b923c
removed this file as this is no longer required.
YashpalThakur Apr 16, 2018
6578d17
file committed after renaming it
Apr 16, 2018
9a6aa9a
Deleted this file to add new file with changes
YashpalThakur Apr 16, 2018
501aacc
Merge remote-tracking branch 'origin'
Apr 16, 2018
d1b0992
files commited to merge changes from upstream
Apr 16, 2018
b95e878
file committed for timezone and null value check review comment imple…
Apr 19, 2018
da1227d
file committed for timezone and null value check review comment imple…
Apr 19, 2018
857a4b4
file committed for timezone and null value check review comment imple…
Apr 19, 2018
6b0b00e
file committed for timezone and null value check review comment imple…
Apr 19, 2018
7cc649c
File committed after changing to StringBuilder
Apr 24, 2018
73d1097
Merge remote-tracking branch 'upstream/master'
atuldambalkar Apr 24, 2018
054d1eb
Merged pull request code related to NULL checks.
atuldambalkar Apr 25, 2018
75d5d1f
Merged pull request code related to NULL checks.
atuldambalkar Apr 25, 2018
c2ba1ee
Removed unused imports.
atuldambalkar Apr 25, 2018
e2ba906
Updated Blob, Clob and Binary objects to use streaming approach while…
atuldambalkar Apr 25, 2018
acda6e3
Fixed a bug related to ArrowBuf offset.
atuldambalkar Apr 25, 2018
f06d85e
Removed unused import.
atuldambalkar Apr 25, 2018
4bfbfe6
file committed for review comment implementation
May 9, 2018
4329c4b
file committed for review comment implementation
May 9, 2018
840970c
file committed for review comment implementation
May 9, 2018
2069103
file committed for review comment implementation
May 9, 2018
95f8e23
file committed for review comment implementation
May 9, 2018
a68cc23
file committed for review comment implementation
May 9, 2018
60314c6
file committed for review comment implementation
May 9, 2018
32ba284
Files committed to resolve compilation error
May 9, 2018
aa6eb92
Merge pull request #5 from YashpalThakur/master
atuldambalkar May 10, 2018
3a2b312
files committed based on atul's comment
May 10, 2018
02952c4
File committed to resolve date error
May 10, 2018
eac219a
Merge pull request #6 from YashpalThakur/master
atuldambalkar May 11, 2018
2129ff9
Merge remote-tracking branch 'upstream/master'
atuldambalkar May 11, 2018
9990616
Removed unused file.
atuldambalkar May 11, 2018
52c0047
Added qualified import stmts.
atuldambalkar May 11, 2018
16cda22
Files committed Charset and Resultset based testcases
May 22, 2018
f685b93
Files committed Charset and Resultset based testcases
May 22, 2018
dcaa74a
Files committed Charset and Resultset based testcases
May 22, 2018
239fca6
Files committed Charset and Resultset based testcases
May 22, 2018
13ec352
File committed for resolving exception related to closing RootAllocator
May 22, 2018
12780ed
Merge pull request #7 from YashpalThakur/master
atuldambalkar May 28, 2018
0c78755
Merge branch 'master' into master
atuldambalkar May 28, 2018
67593cd
File committed for Code Coverage related changes
May 29, 2018
d260342
File committed for Code Coverage related changes
May 29, 2018
6254260
File committed for Code Coverage related changes
May 29, 2018
c9b22fe
File committed for Code Coverage related changes
May 29, 2018
fa65a31
File committed for Code Coverage related changes
May 29, 2018
9a2f463
File committed for Code Coverage related changes
May 29, 2018
7125d6e
File committed for Code Coverage related changes
May 29, 2018
b124ece
File committed for Code Coverage related changes
May 29, 2018
654a5e4
Merge pull request #8 from YashpalThakur/master
atuldambalkar May 29, 2018
e189b14
File committed for the changes made as part of review comment impleme…
May 31, 2018
c66f4a2
File committed for the changes made as part of review comment impleme…
May 31, 2018
abaea4e
File committed for the changes made as part of review comment impleme…
May 31, 2018
16d8ec1
Merge pull request #9 from YashpalThakur/master
atuldambalkar Jun 1, 2018
25eadcf
Merge branch 'master' of https://github.com/apache/arrow
atuldambalkar Jun 16, 2018
dd1ffa4
Fixed indentation for the code as per checkstyle and rest of the Arro…
atuldambalkar Jun 16, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions java/adapter/jdbc/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License. -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-java-root</artifactId>
<version>0.10.0-SNAPSHOT</version>
</parent>

<artifactId>arrow-jdbc</artifactId>
<name>Arrow JDBC Adapter</name>
<url>http://maven.apache.org</url>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-memory -->
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory</artifactId>
<version>${project.version}</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-vector -->
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-vector</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${dep.guava.version}</version>
</dependency>

<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${dep.junit.version}</version>
<scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.196</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${dep.jackson.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${dep.jackson.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${dep.jackson.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${dep.jackson.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<user.timezone>UTC</user.timezone>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.arrow.adapter.jdbc;

import org.apache.arrow.memory.BaseAllocator;
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.vector.VectorSchemaRoot;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;

import com.google.common.base.Preconditions;

/**
* Utility class to convert JDBC objects to columnar Arrow format objects.
* <p>
* This utility uses following data mapping to map JDBC/SQL datatype to Arrow data types.
* <p>
* CHAR --> ArrowType.Utf8
* NCHAR --> ArrowType.Utf8
* VARCHAR --> ArrowType.Utf8
* NVARCHAR --> ArrowType.Utf8
* LONGVARCHAR --> ArrowType.Utf8
* LONGNVARCHAR --> ArrowType.Utf8
* NUMERIC --> ArrowType.Decimal(precision, scale)
* DECIMAL --> ArrowType.Decimal(precision, scale)
* BIT --> ArrowType.Bool
* TINYINT --> ArrowType.Int(8, signed)
* SMALLINT --> ArrowType.Int(16, signed)
* INTEGER --> ArrowType.Int(32, signed)
* BIGINT --> ArrowType.Int(64, signed)
* REAL --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
* FLOAT --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
* DOUBLE --> ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE)
* BINARY --> ArrowType.Binary
* VARBINARY --> ArrowType.Binary
* LONGVARBINARY --> ArrowType.Binary
* DATE --> ArrowType.Date(DateUnit.MILLISECOND)
* TIME --> ArrowType.Time(TimeUnit.MILLISECOND, 32)
* TIMESTAMP --> ArrowType.Timestamp(TimeUnit.MILLISECOND, timezone=null)
* CLOB --> ArrowType.Utf8
* BLOB --> ArrowType.Binary
* <p>
* TODO: At this time, SQL Data type java.sql.Types.ARRAY is still not supported.
*
* @since 0.10.0
*/
public class JdbcToArrow {

/**
* For the given SQL query, execute and fetch the data from Relational DB and convert it to Arrow objects.
* This method uses the default Calendar instance with default TimeZone and Locale as returned by the JVM.
* If you wish to use specific TimeZone or Locale for any Date, Time and Timestamp datasets, you may want use
* overloaded API that taken Calendar object instance.
*
* @param connection Database connection to be used. This method will not close the passed connection object. Since hte caller has passed
* the connection object it's the responsibility of the caller to close or return the connection to the pool.
* @param query The DB Query to fetch the data.
* @param allocator Memory allocator
* @return Arrow Data Objects {@link VectorSchemaRoot}
* @throws SQLException Propagate any SQL Exceptions to the caller after closing any resources opened such as ResultSet and Statement objects.
*/
public static VectorSchemaRoot sqlToArrow(Connection connection, String query, BaseAllocator allocator) throws SQLException, IOException {
Preconditions.checkNotNull(connection, "JDBC connection object can not be null");
Preconditions.checkArgument(query != null && query.length() > 0, "SQL query can not be null or empty");
Preconditions.checkNotNull(allocator, "Memory allocator object can not be null");

return sqlToArrow(connection, query, allocator, Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT));
}

/**
* For the given SQL query, execute and fetch the data from Relational DB and convert it to Arrow objects.
*
* @param connection Database connection to be used. This method will not close the passed connection object. Since hte caller has passed
* the connection object it's the responsibility of the caller to close or return the connection to the pool.
* @param query The DB Query to fetch the data.
* @param allocator Memory allocator
* @param calendar Calendar object to use to handle Date, Time and Timestamp datasets.
* @return Arrow Data Objects {@link VectorSchemaRoot}
* @throws SQLException Propagate any SQL Exceptions to the caller after closing any resources opened such as ResultSet and Statement objects.
*/
public static VectorSchemaRoot sqlToArrow(Connection connection, String query, BaseAllocator allocator, Calendar calendar) throws SQLException, IOException {
Preconditions.checkNotNull(connection, "JDBC connection object can not be null");
Preconditions.checkArgument(query != null && query.length() > 0, "SQL query can not be null or empty");
Preconditions.checkNotNull(allocator, "Memory allocator object can not be null");
Preconditions.checkNotNull(calendar, "Calendar object can not be null");

try (Statement stmt = connection.createStatement()) {
return sqlToArrow(stmt.executeQuery(query), allocator, calendar);
}
}

/**
* For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects. This method
* uses the default RootAllocator and Calendar object.
*
* @param resultSet
* @return Arrow Data Objects {@link VectorSchemaRoot}
* @throws SQLException
*/
public static VectorSchemaRoot sqlToArrow(ResultSet resultSet) throws SQLException, IOException {
Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");

return sqlToArrow(resultSet, Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT));
}

/**
* For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
*
* @param resultSet
* @param allocator Memory allocator
* @return Arrow Data Objects {@link VectorSchemaRoot}
* @throws SQLException
*/
public static VectorSchemaRoot sqlToArrow(ResultSet resultSet, BaseAllocator allocator) throws SQLException, IOException {
Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
Preconditions.checkNotNull(allocator, "Memory Allocator object can not be null");

return sqlToArrow(resultSet, allocator, Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT));
}

/**
* For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
*
* @param resultSet
* @param calendar Calendar instance to use for Date, Time and Timestamp datasets.
* @return Arrow Data Objects {@link VectorSchemaRoot}
* @throws SQLException
*/
public static VectorSchemaRoot sqlToArrow(ResultSet resultSet, Calendar calendar) throws SQLException, IOException {
Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
Preconditions.checkNotNull(calendar, "Calendar object can not be null");

RootAllocator rootAllocator = new RootAllocator(Integer.MAX_VALUE);
VectorSchemaRoot root = sqlToArrow(resultSet, rootAllocator, calendar);

return root;
}

/**
* For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
*
* @param resultSet
* @param allocator Memory allocator to use.
* @param calendar Calendar instance to use for Date, Time and Timestamp datasets.
* @return Arrow Data Objects {@link VectorSchemaRoot}
* @throws SQLException
*/
public static VectorSchemaRoot sqlToArrow(ResultSet resultSet, BaseAllocator allocator, Calendar calendar) throws SQLException, IOException {
Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
Preconditions.checkNotNull(allocator, "Memory Allocator object can not be null");
Preconditions.checkNotNull(calendar, "Calendar object can not be null");

VectorSchemaRoot root = VectorSchemaRoot.create(
JdbcToArrowUtils.jdbcToArrowSchema(resultSet.getMetaData(), calendar), allocator);
JdbcToArrowUtils.jdbcToArrowVectors(resultSet, root, calendar);
return root;
}
}
Loading