US 12,314,694 B2
Inline compilation of user defined functions
Elliott Brossard, Kirkland, WA (US); Siddharth Kulkarni, Sammamish, WA (US); and Isaac Kunen, Seattle, WA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on May 26, 2023, as Appl. No. 18/324,615.
Application 18/324,615 is a continuation of application No. 17/823,621, filed on Aug. 31, 2022, granted, now 11,704,100.
Application 17/823,621 is a continuation of application No. 17/389,871, filed on Jul. 30, 2021, granted, now 11,461,080.
Claims priority of provisional application 63/197,712, filed on Jun. 7, 2021.
Prior Publication US 2023/0297350 A1, Sep. 21, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 21/60 (2013.01); G06F 8/41 (2018.01); G06F 9/54 (2006.01); G06F 16/245 (2019.01); G06F 16/2455 (2019.01); G06F 21/53 (2013.01)
CPC G06F 8/44 (2013.01) [G06F 9/547 (2013.01); G06F 16/245 (2019.01); G06F 16/2455 (2019.01); G06F 21/53 (2013.01); G06F 21/602 (2013.01); G06F 21/606 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by a cloud processing system operating using a first programming language, a query referencing a user defined function (UDF) including a body with a code portion in a second programming language;
generating a query plan to execute the query, the query plan including at least one function associated with the UDF;
transmitting the query plan to a processing node;
providing a worker process of the processing node and providing a separate UDF server in the processing node, the UDF server and the worker process being associated with separate processors of the processing node;
transmitting the code portion of the UDF from the worker process to the UDF server via a remote call protocol, the UDF server being restricted from accessing select data accessible by the worker process;
compiling the code portion of the UDF to generate compiled results in a language-specific integration operating on the UDF server, the UDF server operating using the first programming language and the language-specific integration operating in the second programming language; and
transmitting the compiled results from the UDF server to the worker process via the remote call protocol,
generating a response to the query based on the compiled results.