US 12,124,448 B2
Using temporary tables to store graph algorithm results for a relational database management system
Hugo Kapp, Zurich (CH); Laurent Daynes, Saint-Ismier (FR); Vlad Ioan Haprian, Zurich (CH); Jean-Pierre Lozi, Zurich (CH); Zhen Hua Liu, San Mateo, CA (US); Marco Arnaboldi, Zurich (CH); Sabina Petride, Tracy, CA (US); Andrew Witkowski, Foster City, CA (US); Hassan Chafi, San Mateo, CA (US); and Sungpack Hong, Palo Alto, CA (US)
Assigned to Oracle International Corporation
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Jan. 26, 2022, as Appl. No. 17/585,146.
Prior Publication US 2023/0267120 A1, Aug. 24, 2023
Int. Cl. G06F 16/00 (2019.01); G06F 16/2453 (2019.01)
CPC G06F 16/24539 (2019.01) 34 Claims
OG exemplary drawing
 
1. A computer-executed method comprising:
a database management system (DBMS) maintaining a database that stores a particular graph object that defines a plurality of vertices and a plurality of edges in a plurality of graph database objects wherein the plurality of graph database objects includes a first graph database object that stores the plurality of vertices and a second graph database object that stores the plurality of edges;
compiling a query that calls a graph analytics function (GAF) having the particular graph object as an input argument, comprising generating one or more temporary database objects for a cursor of the query;
executing the query during a particular execution of the cursor, comprising:
invoking the GAF over the particular graph object to produce a plurality of GAF-computed values that are temporary and alive during execution of the query,
storing the plurality of GAF-computed values in the one or more temporary database objects, and
utilizing the plurality of GAF-computed values in the one or more temporary database objects to produce a result set for the query that includes at least a portion of the plurality of GAF-computed values; and
returning the result set as a result of the query;
wherein the method is performed by one or more computing devices.