Using wildcards in your UDx

Vertica supports wildcard * characters in the place of column names in user-defined functions.

Vertica supports wildcard * characters in the place of column names in user-defined functions.

You can use wildcards when:

  • Your query contains a table in the FROM clause

  • You are using a Vertica-supported development language

  • Your UDx is running in fenced or unfenced mode

Supported SQL statements

The following SQL statements can accept wildcards:

  • DELETE

  • INSERT

  • SELECT

  • UPDATE

Unsupported configurations

The following situations do not support wildcards:

  • You cannot pass a wildcard in the OVER clause of a query

  • You cannot us a wildcard with a DROP statement

  • You cannot use wildcards with any other arguments

Examples

These examples show wildcards and user-defined functions in a range of data manipulation operations.

DELETE statements:

=> DELETE FROM tablename WHERE udf(tablename.*) = 5;

INSERT statements:

=> INSERT INTO table1 SELECT udf(*) FROM table2;

SELECT statements:

=> SELECT udf(*) FROM tablename;
=> SELECT udf(tablename.*) FROM tablename;
=> SELECT udf(f.*) FROM table f;
=> SELECT udf(*) FROM table1,table2;
=> SELECT udf1( udf2(*) ) FROM table1,table2;
=> SELECT udf( db.schema.table.*) FROM tablename;
=> SELECT udf(sub.*) FROM (select col1, col2 FROM table) sub;
=> SELECT x FROM tablename WHERE udf(*) = y;
=> WITH sub as (SELECT * FROM tablename) select x, udf(*) FROM sub;
=> SELECT udf( * using parameters x=1) FROM tablename;
=> SELECT udf(table1.*, table2.col2) FROM table1,table2;

UPDATE statements:

=> UPDATE tablename set col1 = 4 FROM tablename WHERE udf(*) = 3;