Я могу создать библиотеку, но затем при попытке создать функцию получаю исключение:
CREATE FUNCTION java_dvp AS LANGUAGE 'Java' NAME 'my.package.DVP' LIBRARY dvpLibrary;
Журнал ошибок
[2018-10-02 16:18:38] [42V13][4746] [Vertica][VJDBC](4746) ROLLBACK: Setting up function "java_dvp" failed
[2018-10-02 16:18:38] [Vertica][VJDBC]Detail: [Incompatible factory type]
[2018-10-02 16:18:38] java.lang.RuntimeException: com.vertica.support.exceptions.SyntaxErrorException: [Vertica][VJDBC](4746) ROLLBACK: Setting up function "java_dvp" failed
[2018-10-02 16:18:38] [Vertica][VJDBC]Detail: [Incompatible factory type]
[2018-10-02 16:18:38] at com.vertica.util.ServerErrorData.buildException(Unknown Source)
[2018-10-02 16:18:38] at com.vertica.dataengine.VQueryExecutor.executeSimpleProtocol(Unknown Source)
[2018-10-02 16:18:38] at com.vertica.dataengine.VQueryExecutor.execute(Unknown Source)
[2018-10-02 16:18:38] at com.vertica.jdbc.common.SStatement.executeNoParams(Unknown Source)
[2018-10-02 16:18:38] at com.vertica.jdbc.common.SStatement.execute(Unknown Source)
[2018-10-02 16:18:38] at com.intellij.database.remote.jdbc.impl.RemoteStatementImpl.execute(RemoteStatementImpl.java:71)
[2018-10-02 16:18:38] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2018-10-02 16:18:38] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2018-10-02 16:18:38] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2018-10-02 16:18:38] at java.lang.reflect.Method.invoke(Method.java:498)
[2018-10-02 16:18:38] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
[2018-10-02 16:18:38] at sun.rmi.transport.Transport$1.run(Transport.java:200)
[2018-10-02 16:18:38] at sun.rmi.transport.Transport$1.run(Transport.java:197)
[2018-10-02 16:18:38] at java.security.AccessController.doPrivileged(Native Method)
[2018-10-02 16:18:38] at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
[2018-10-02 16:18:38] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
[2018-10-02 16:18:38] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
[2018-10-02 16:18:38] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
[2018-10-02 16:18:38] at java.security.AccessController.doPrivileged(Native Method)
[2018-10-02 16:18:38] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
[2018-10-02 16:18:38] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[2018-10-02 16:18:38] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[2018-10-02 16:18:38] at java.lang.Thread.run(Thread.java:745) (no stack trace)
Это мой источниккод
public class DVP extends TransformFunctionFactory {
@Override
public TransformFunction createTransformFunction(ServerInterface serverInterface) {
return new TransformFunction() {
@Override
public void processPartition(ServerInterface serverInterface, PartitionReader partitionReader,
PartitionWriter partitionWriter) throws UdfException, DestroyInvocation {
int numCols = partitionReader.getNumCols();
do {
// do staff
} while (!isCanceled() && partitionReader.next());
}
};
}
@Override
public void getPrototype(ServerInterface serverInterface, ColumnTypes argTypes, ColumnTypes returnTypes) {
argTypes.addAny();
returnTypes.addAny();
}
@Override
public void getReturnType(ServerInterface srvInterface, SizedColumnTypes argTypes, SizedColumnTypes returnType) throws UdfException {
returnType.addVarchar(1024 * 10, "key");
}
}