US 12,032,576 B2
Joining large database tables
Chris Baskett, Belmont, CA (US); Tony Faustini, Berkeley, CA (US); and Farzin Shakib, Los Altos Hills, CA (US)
Assigned to INPIXON, Palo Alto, CA (US)
Filed by Inpixon, Palo Alto, CA (US)
Filed on May 31, 2022, as Appl. No. 17/828,982.
Application 17/828,982 is a continuation of application No. 16/376,950, filed on Apr. 5, 2019, granted, now 11,386,091.
Application 16/376,950 is a continuation of application No. 14/218,912, filed on Mar. 18, 2014, granted, now 10,268,639, issued on Apr. 23, 2019.
Claims priority of provisional application 61/800,126, filed on Mar. 15, 2013.
Prior Publication US 2022/0405277 A1, Dec. 22, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/00 (2019.01); G06F 16/22 (2019.01); G06F 16/242 (2019.01); G06F 16/2452 (2019.01); G06F 16/2453 (2019.01); G06F 16/2455 (2019.01)
CPC G06F 16/2456 (2019.01) [G06F 16/2237 (2019.01); G06F 16/2448 (2019.01); G06F 16/24528 (2019.01); G06F 16/2453 (2019.01); G06F 16/24542 (2019.01); G06F 16/24544 (2019.01); G06F 16/24547 (2019.01)] 16 Claims
OG exemplary drawing
 
1. A method of performing a join of a plurality of tables, the method comprising:
receiving, at a computer system, a query identifying a plurality of tables to be joined;
identifying, by the computer system, one or more first entries in a first table that satisfy one or more criteria included in the query;
setting, by the computer system, one or more flags of first flags of a first active flag structure to indicate a true value in response to identification of a corresponding entry of the one or more first entries in the first table that satisfies at least one criterion of the one or more criteria, wherein at least one of the first flags indicates a true value, and wherein another flag of the first flags indicates a false value when another corresponding entry of the one or more first entries does not satisfy the one or more criteria included in the query;
identifying, by the computer system, keys corresponding to one or more second entries in a second table based on the identified one or more first entries in the first table, wherein the keys are foreign keys that correspond to primary keys in the second table;
using the identified keys to generate a request corresponding to the one or more second entries in the second table, wherein the request includes a plurality of separate requests;
determining, by the computer system, an identifier for each of the identified keys, the identifier specifying a memory location for a corresponding second entry;
sending, by the computer system, the request which includes sending the plurality of separate requests based on the identifier; and
updating, by the computer system, at least one of the first flags of the first active flag structure that indicate a true value to indicate a false value based on at least one separate response to the request.