IP Library Granted Patent US 12,118,005
Granted Patent B2
US 12,118,005 · App. 17/682,866 · Granted Oct 15, 2024

Maintaining cardinality of rows while joining worksheets from a database

Inventors: Jason D. Frantz (San Francisco, CA); Max H. Seiden (San Francisco, CA); James L. Gale (San Francisco, CA); Kenneth Truong (Temple City, CA)
Assignee: SIGMA COMPUTING, INC.
G06F16/2456G06F16/2365
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,118,005
App. No.
17/682,866
Granted
Oct 15, 2024
Kind
B2
Abstract

Maintaining cardinality of rows while joining worksheets from a database including receiving a request to join, to a first worksheet, a second worksheet from the database; for each row in the first worksheet: generating a join row for data from the second worksheet on the database; in response to determining that there is at least one matching row in the second worksheet on the database: compare a maximum value and a minimum value for each column in each row of the at least one matching row; if the maximum value and the minimum value match, store a matching value in a corresponding column of the join row; and if the maximum value and the minimum value do not match, store a multiple value indication in the corresponding column of the join row; and presenting the join row adjacent to a corresponding row in the first worksheet.

Claims (51)

1. A method of maintaining cardinality of rows while joining worksheets from a database, the method comprising:

receiving, by a joining module from a client computing system, a request to join, to a first worksheet, a second worksheet from the database on a cloud-based data warehouse, wherein the request comprises a join key;

generating, by the joining module, a first database statement to create a group of join rows in the database that each correspond to a row in the first worksheet based on the join key;

sending, by the joining module, the generated first database statement to the cloud-based data warehouse;

retrieving, by the joining module using a second database statement, the group of join rows from the cloud-based data warehouse; and

presenting, on the client computing system by the joining module, each of the group of join rows adjacent to a corresponding row in the first worksheet.

2. The method of claim 1 , wherein generating the first database statement to create the group of join rows in the database comprises:

for each row in the first worksheet:

generating a join row for data from the second worksheet; and

in response to determining that there is at least one matching row in the second worksheet on the database:

compare, by the joining module, a maximum value and a minimum value for each column in each row of the at least one matching row;

if the maximum value and the minimum value match, store, by the joining module, a matching value in a corresponding column of the join row on the database; and

if the maximum value and the minimum value do not match, store, by the joining module, a multiple value indication in the corresponding column of the join row on the database.

3. The method of claim 2 , wherein generating the first database statement to create the group of join rows in the database further comprises:

in response to determining that there is no matching row in the second worksheet, store a null value in each column of the join row.

4. The method of claim 2 , wherein at least one of the maximum value and the minimum value for at least one column comprises a null value.

5. The method of claim 2 , wherein the multiple value indication communicates a number of different values in the corresponding column.

6. An apparatus for maintaining cardinality of rows while joining worksheets from a database, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

receiving, by a joining module from a client computing system, a request to join, to a first worksheet, a second worksheet from the database on a cloud-based data warehouse, wherein the request comprises a join key;

generating, by the joining module, a first database statement to create a group of join rows in the database that each correspond to a row in the first worksheet based on the join key;

sending, by the joining module, the generated first database statement to the cloud-based data warehouse;

retrieving, by the joining module using a second database statement, the group of join rows from the cloud-based data warehouse; and

presenting, on the client computing system by the joining module, each of the group of join rows adjacent to a corresponding row in the first worksheet.

7. The apparatus of claim 6 , wherein generating the first database statement to create the group of join rows in the database comprises:

for each row in the first worksheet:

generating a join row for data from the second worksheet; and

in response to determining that there is at least one matching row in the second worksheet on the database:

compare, by the joining module, a maximum value and a minimum value for each column in each row of the at least one matching row;

if the maximum value and the minimum value match, store, by the joining module, a matching value in a corresponding column of the join row on the database; and

if the maximum value and the minimum value do not match, store, by the joining module, a multiple value indication in the corresponding column of the join row on the database.

8. The apparatus of claim 7 , wherein generating the first database statement to create the group of join rows in the database further comprises:

in response to determining that there is no matching row in the second worksheet, store a null value in each column of the join row.

9. The apparatus of claim 7 , wherein at least one of the maximum value and the minimum value for at least one column comprises a null value.

10. The apparatus of claim 7 , wherein the multiple value indication communicates a number of different values in the corresponding column.

11. A computer program product for maintaining cardinality of rows while joining worksheets from a database, the computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

receiving, by a joining module from a client computing system, a request to join, to a first worksheet, a second worksheet from the database on a cloud-based data warehouse, wherein the request comprises a join key;

generating, by the joining module, a first database statement to create a group of join rows in the database that each correspond to a row in the first worksheet based on the join key;

sending, by the joining module, the generated first database statement to the cloud-based data warehouse;

retrieving, by the joining module using a second database statement, the group of join rows from the cloud-based data warehouse; and

presenting, on the client computing system by the joining module, each of the group of join rows adjacent to a corresponding row in the first worksheet.

12. The computer program product of claim 11 , wherein generating the first database statement to create the group of join rows in the database comprises:

for each row in the first worksheet:

generating a join row for data from the second worksheet; and

in response to determining that there is at least one matching row in the second worksheet on the database:

compare, by the joining module, a maximum value and a minimum value for each column in each row of the at least one matching row;

if the maximum value and the minimum value match, store, by the joining module, a matching value in a corresponding column of the join row on the database; and

if the maximum value and the minimum value do not match, store, by the joining module, a multiple value indication in the corresponding column of the join row on the database.

13. The computer program product of claim 12 , wherein generating the first database statement to create the group of join rows in the database further comprises:

in response to determining that there is no matching row in the second worksheet, store a null value in each column of the join row.

14. The computer program product of claim 12 , wherein at least one of the maximum value and the minimum value for at least one column comprises a null value.

15. The computer program product of claim 12 , wherein the multiple value indication communicates a number of different values in the corresponding column.

Assignments (2)
SECURITY INTEREST Recorded Aug 1, 2025
From: SIGMA COMPUTING, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072316/0724 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2022
From: FRANTZ, JASON D.; SEIDEN, MAX H.; GALE, JAMES L.; TRUONG, KENNETH
To: SIGMA COMPUTING, INC.
Reel/Frame 059122/0248 →
Continuity (3)
Continuation 16862953 · Apr 30, 2020
Provisional Application 62841615 · May 1, 2019
Related Publication 20220179855A1 · Jun 9, 2022