IP Library › Granted Patent US 12,405,938
Granted Patent B2
US 12,405,938 · App. 18/524,784 · Granted Sep 2, 2025

Hybrid table secondary index for lookups, unique checks, and referential integrity constraints

Inventors: Nikolaos Romanos Katsipoulakis (Redwood City, CA); Dimitrios Tsirogiannis (Belmont, CA); Zhaohui Zhang (Redwood City, CA)
Assignee: Snowflake Inc.
G06F16/2272G06F16/2264G06F16/283G06F16/284
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,405,938
App. No.
18/524,784
Filed
Nov 30, 2023
Granted
Sep 2, 2025
Kind
B2
Examiner
LE, HUNG D
Art Unit
2161
USPC
707/791
Abstract

The subject technology generates a nested object based on a set of metadata, the set of metadata including information linking the nested object to a table object associated with a base table. The subject technology generates a second table object associated with the nested object, the second table object representing a secondary index of the base table, the second table object including information linking the second table object to the nested object. The subject technology generates a second nested object based on a particular set of metadata, the particular set of metadata including information linking the second nested object to the table object. The subject technology generates a third table object associated with the second nested object, the third table object representing a particular secondary index of the base table, the third table object including information linking the third table object to the second nested object.

Claims (43)

1. A system comprising:

at least one hardware processor; and

a memory storing instructions that cause the at least one hardware processor to perform operations comprising:

generating a nested object based on a set of metadata, the set of metadata including information linking the nested object to a table object associated with a base table;

generating a second table object associated with the nested object, the second table object representing a secondary index of the base table, the second table object including information linking the second table object to the nested object;

generating a second nested object based on a particular set of metadata, the particular set of metadata including information linking the second nested object to the table object;

generating a third table object associated with the second nested object, the third table object representing a particular secondary index of the base table, the third table object including information linking the third table object to the second nested object; and

storing, in a metadata database, the second nested object and the third table object.

2. The system of claim 1 , wherein the operations further comprise:

generating a nested object based on a second set of metadata.

3. The system of claim 2 , wherein the second set of metadata includes information linking the nested object to the table object, the second set of metadata comprises a nested object identifier, a nested object domain identifier, a particular identifier corresponding to the table object, and nested relationship type identifier.

4. The system of claim 2 , wherein the second table object includes a third set of metadata, the third set of metadata including different metadata from the second set of metadata.

5. The system of claim 4 , wherein the third set of metadata comprises a nested object identifier corresponding to the nested object, a key value counter, a set of column identifiers, a particular identifier associated with the base table, an index type.

6. The system of claim 1 , wherein the operations further comprise:

determining a table object associated with the base table, the table object including a first set of metadata, the first set of metadata comprising an account identifier, a first unique identifier for the base table, a second unique identifier for a particular schema of the base table, and a name of the base table.

7. The system of claim 1 , wherein the base table is a parent table of a second table associated with the second table object.

8. The system of claim 1 , wherein the operations further comprise:

generating a constraint object associated with the second table object, the constraint object including a particular set of metadata.

9. The system of claim 8 , wherein the particular set of metadata comprises information indicating a deferability of a constraint, a definition of the constraint, an identifier of the constraint, and information indicating a kind of the constraint.

10. The system of claim 1 , wherein secondary index and the particular secondary index are associated with different prefixes and different columns of the base table.

11. A method comprising:

generating a nested object based on a set of metadata, the set of metadata including information linking the nested object to a table object associated with a base table;

generating a second table object associated with the nested object, the second table object representing a secondary index of the base table, the second table object including information linking the second table object to the nested object;

generating a second nested object based on a particular set of metadata, the particular set of metadata including information linking the second nested object to the table object;

generating a third table object associated with the second nested object, the third table object representing a particular secondary index of the base table, the third table object including information linking the third table object to the second nested object; and

storing, in a metadata database, the second nested object and the third table object.

12. The method of claim 11 , further comprising:

generating a nested object based on a second set of metadata.

13. The method of claim 12 , wherein the second set of metadata includes information linking the nested object to the table object, the second set of metadata comprises a nested object identifier, a nested object domain identifier, a particular identifier corresponding to the table object, and nested relationship type identifier.

14. The method of claim 12 , wherein the second table object includes a third set of metadata, the third set of metadata including different metadata from the second set of metadata.

15. The method of claim 14 , wherein the third set of metadata comprises a nested object identifier corresponding to the nested object, a key value counter, a set of column identifiers, a particular identifier associated with the base table, an index type.

16. The method of claim 11 , further comprising:

determining a table object associated with the base table, the table object including a first set of metadata, the first set of metadata comprising an account identifier, a first unique identifier for the base table, a second unique identifier for a particular schema of the base table, and a name of the base table.

17. The method of claim 11 , wherein the base table is a parent table of a second table associated with the second table object.

18. The method of claim 11 , further comprising:

generating a constraint object associated with the second table object, the constraint object including a particular set of metadata.

19. The method of claim 18 , wherein the particular set of metadata comprises information indicating a deferability of a constraint, a definition of the constraint, an identifier of the constraint, and information indicating a kind of the constraint.

20. A non-transitory computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

generating a nested object based on a set of metadata, the set of metadata including information linking the nested object to a table object associated with a base table;

generating a second table object associated with the nested object, the second table object representing a secondary index of the base table, the second table object including information linking the second table object to the nested object;

generating a second nested object based on a particular set of metadata, the particular set of metadata including information linking the second nested object to the table object;

generating a third table object associated with the second nested object, the third table object representing a particular secondary index of the base table, the third table object including information linking the third table object to the second nested object; and

storing, in a metadata database, the second nested object and the third table object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2023
From: KATSIPOULAKIS, NIKOLAOS ROMANOS; TSIROGIANNIS, DIMITRIOS; ZHANG, ZHAOHUI
To: SNOWFLAKE INC.
Reel/Frame 065718/0908 →
Continuity (3)
Continuation 18171292 · Feb 17, 2023
Provisional Application 63366317 · Jun 13, 2022
Related Publication 20240104116A1 · Mar 28, 2024
References Cited (43)
US 6484179B1 · Roccaforte · 2002 [cited by applicant]
US 7617249B2 · Thusoo · 2009 [cited by examiner]
US 9183254B1 · Cole · 2015 [cited by examiner]
US 10318491B1 · Graham · 2019 [cited by examiner]
US 11269824B1 · Waas · 2022 [cited by examiner]
US 11461347B1 · Das · 2022 [cited by examiner]
US 11880388B2 · Katsipoulakis et al. · 2024 [cited by applicant]
US 20040117600A1 · Bodas et al. · 2004 [cited by applicant]
US 20060085465A1 · Nori · 2006 [cited by examiner]
US 20060230016A1 · Cunningham · 2006 [cited by examiner]
US 20070219999A1 · Richey · 2007 [cited by examiner]
US 20100287298A1 · Leung · 2010 [cited by examiner]
US 20110022819A1 · Post · 2011 [cited by examiner]
US 20110082854A1 · Eidson · 2011 [cited by examiner]
US 20110320403A1 · O'Krafka et al. · 2011 [cited by applicant]
US 20120005154A1 · George et al. · 2012 [cited by applicant]
US 20120110515A1 · Abramoff · 2012 [cited by examiner]
US 20130246698A1 · Estan · 2013 [cited by examiner]
US 20140094307A1 · Doolittle · 2014 [cited by examiner]
US 20140172898A1 · Aguilera et al. · 2014 [cited by applicant]
US 20150019227A1 · Anandarajah · 2015 [cited by examiner]
US 20160219078A1 · Porras · 2016 [cited by examiner]
US 20160239751A1 · Mosterman · 2016 [cited by examiner]
US 20170052766A1 · Garipov · 2017 [cited by examiner]
US 20170316041A1 · Delaney · 2017 [cited by examiner]
US 20190050437A1 · Goyal et al. · 2019 [cited by applicant]
US 20190129893A1 · Baird, III et al. · 2019 [cited by applicant]
US 20190325055A1 · Lee et al. · 2019 [cited by applicant]
US 20200364201A1 · Cseri et al. · 2020 [cited by applicant]
US 20230015344A1 · Flanagan · 2023 [cited by examiner]
US 20230020330A1 · Schwerin et al. · 2023 [cited by applicant]
US 20230081900A1 · Werner et al. · 2023 [cited by applicant]
US 20230401189A1 · Katsipoulakis et al. · 2023 [cited by applicant]
US 20230401236A1 · Katsipoulakis et al. · 2023 [cited by applicant]
“U.S. Appl. No. 18/171,292, Non Final Office Action mailed Jul. 24, 2023”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 18/171,292, Notice of Allowance mailed Sep. 20, 2023”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 18/171,292, Response filed Aug. 31, 2023 to Non Final Office Action mailed Jul. 24, 2023”, 19 pgs. [cited by applicant]
U.S. Appl. No. 18/171,292 U.S. Pat. No. 11,880,388, filed Feb. 17, 2023, Hybrid Table Secondary Index For Lookups, Unique Checks, and Referential Integrity Constraints. [cited by applicant]
U.S. Appl. No. 18/171,296, filed Feb. 17, 2023, Query Processing Using Hybrid Table Secondary Indexes. [cited by applicant]
“U.S. Appl. No. 18 171,296, Response filed Apr. 1, 2024 to Non Final Office Action mailed Jan. 18, 2024”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 18/171,296, Notice of Allowance mailed Apr. 25, 2024”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 18/171,296, Non Final Office Action mailed Jan. 18, 2024”, 7 pgs. [cited by applicant]
U.S. Appl. No. 18/759,124, filed Jun. 28, 2024, Query Processing Using Hybrid Table Secondary Indexes. [cited by applicant]
Cited By (1)
US 12,650,969