We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


C++ UDF in vertica — Vertica Forum

C++ UDF in vertica

I need to write a UDF in C++ for the vertica DB.

The UDF is applied on every row. It takes an integral input and returns an array of indexes with the set bit. Ex: UDF's input and output

Input --> Output
0 --> { }
7 --> { '0', '1', '2' }
1 --> { '0' }
5 --> { '0', '2' }
11 --> { '0', '2', '4' }
I read about various types of UDFs in vertica. I think for my use case I need to use scalar functions.

The output is an array of strings.

But I am unable to figure out what vertica datatype should I return as output. The vertica document do not mention of any array data types.

Please correct me if I am wrong.

Answers

  • Ariel_CaryAriel_Cary Vertica Employee Employee

    Hi Anshuman,

    The SDK doesn't support array data types. You could use a UD transform to output an arbitrary number of columns from the UDx. You'd need to decide on the largest number of indexes your UDx could output beforehand.

    A more efficient option could be to encode the array output in a Varbinary value. In such case you could use a UDSF. This could be useful if you plan to pass around this output to another function that will decode the array value.

    Ariel

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file