Functions overloading

Snowflake support procedures and functions overloading. You can create multiple UDFs with the same name but with different types of arguments..

Let's create:

CREATE TABLE A(ID INT);
CREATE TABLE B(S STRING);

CREATE OR REPLACE FUNCTION fn_overload ( _id number )
  RETURNS TABLE (id int)
  AS 'select id from a where id > _id'
;


CREATE OR REPLACE FUNCTION fn_overload ( _s string )
  RETURNS TABLE (s string)
  AS 'select s from b where s != _s'
;

The first one has Table A as a source, and the second one Table B.

Now let's create VIEWs depending on these functions:

CREATE VIEW V1 AS
SELECT * FROM TABLE(fn_overload(1));

CREATE VIEW V2 AS
SELECT * FROM TABLE(fn_overload('1'));

Here is the Dwh.dev result:

Last updated