Forum: Building VoltDB Applications

Post: Export to JDBC connector (Vertica) related question: Vertica only supports VARCHAR up to 65000

Export to JDBC connector (Vertica) related question: Vertica only supports VARCHAR up to 65000
sdks
Sep 8, 2016
Hi,
Currently I am trying to configure VoltDb(v4.9)-->Vertica export using JDBC connector. The issue we faced is that in VoltDb we have following table structure:

create table MasterLog_t
(
OperationContext varchar(38) not null , -- PARTITION KEY
LayerID smallint not null,
EventTypeID smallint not null, --this is the same as StatusID ???
EventLevelID smallint not null,
LayerTimestamp timestamp not null,
UpdateDate timestamp not null, -- not exposed in stored procedure
LogMessageJSON varchar(1048576 BYTES) not null
);

EXPORT TABLE MasterLog_t

Where the length of the last column is 1048576 bytes long. However when I am trying to start the VoltDb server it is throwing following exception:

ERROR: Error in accepting mastership
java.lang.RuntimeException: Vertica only supports VARCHAR up to 65000
at org.voltdb.exportclient.JDBCExportClient$JDBCDecoder.<init>(JDBCExportClient.java:293)
at org.voltdb.exportclient.JDBCExportClient.constructExportDecoder(JDBCExportClient.java:603)
at org.voltdb.export.processors.GuestProcessor$1.run(GuestProcessor.java:110)
at org.voltdb.export.ExportDataSource$11.run(ExportDataSource.java:802)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.voltcore.utils.CoreUtils$6$1.run(CoreUtils.java:644)
at java.lang.Thread.run(Thread.java:745)

Is there any way to fix this issue? Vertica does not support such VARCHARs however it has LONG VARCHAR that supports this length.
rmorgenstein
Sep 12, 2016
sdks,

I think you contacted us at support, but in case anyone else is wondering:

In V6.5 you can create the tables yourself in Vertica, then use createtable=false in the Vertica export connector to tell VoltDB that it doesn't need to do this step. We have created a feature request ticket to make the logic use LONG VARCHAR for exporting VoltDB columns that are longer than the Vertica VARCHAR field max.

Ruth