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
Sep 8, 2016
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


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>(
at org.voltdb.exportclient.JDBCExportClient.constructExportDecoder(
at org.voltdb.export.processors.GuestProcessor$
at org.voltdb.export.ExportDataSource$
at java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.util.concurrent.ThreadPoolExecutor$
at org.voltcore.utils.CoreUtils$6$

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

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.