IP Library › Granted Patent US 11,886,872
Granted Patent B1
US 11,886,872 · App. 18/169,812 · Granted Jan 30, 2024

In-database application package and application

Inventors: Karol Pawel Bienkowski (Toronto, CA); Damien Carru (Rhinebeck, NY); Jeremy Yujui Chen (Newark, CA); Pui Kei Johnston Chu (Richmond Hill, CA); Benoit Dageville (San Mateo, CA); Scott C. Gray (Richmond Hill, CA); Unmesh Jagtap (San Mateo, CA); Subramanian Muralidhar (Mercer Island, WA)
Assignee: Snowflake Inc.
G06F8/71G06F9/4488
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 11,886,872
App. No.
18/169,812
Granted
Jan 30, 2024
Kind
B1
Abstract

An in-database application package and application instance for a data platform. The data platform creates an application instance of an application package having a versioned schema, creates one or more system roles for the application instance, creates a user role and an administrator role for the application instance, creates one or more objects of the application instance based on a versioned schema, and grants one or more use privileges to the one or more roles. Application instances of the application package are upgraded or patched on the data platform based on application package versions. To ensure a proper upgrade or patch, the data platform tracks versions of executing objects of application instances in a call context.

Claims (62)

1. A computer-implemented method of a data platform, the method comprising:

creating, by one or more processors, an application instance of an application package having a versioned schema;

creating, by the one or more processors, one or more system roles for the application instance based on the versioned schema;

creating, by the one or more processors, one or more user roles for the application instance based on the versioned schema;

creating, by the one or more processors, one or more objects of the application instance based on the versioned schema;

granting, by the one or more processors, one or more usages to the one or more user roles based on the versioned schema, the one or more usages comprising use privileges to access objects of the application package; and

determining, by the one or more processors executing a first procedure, a version context of a second procedure based on a versioned schema, wherein the version context of the second procedure is determined by rules comprising;

in response to determining the second procedure is associated with a call context, use a version of a call context of the first procedure and the second procedure;

in response to determining there is a global version set on a parent database of the first procedure and the second procedure, use the global version; and

in response to determining the second procedure not associated with the call context and no global version set on the parent database, use an active version associated with the versioned schema.

2. The computer-implemented method of claim 1 , wherein the objects of the application package comprise executable objects.

3. The computer-implemented method of claim 2 , wherein the executable objects are versioned and are updated when an application package is upgraded to a new version.

4. The computer-implemented method of claim 1 , wherein the objects of the application package comprise shared data objects.

5. The computer-implemented method of claim 1 , wherein a subset of objects of the one or more objects created in the application instance are versioned objects that are upgraded when the application package is upgraded to a new version.

6. The computer-implemented method of claim 1 , wherein a subset of objects of the one or more objects created in the application instance are unversioned objects that are not upgraded when the application package is upgraded to a new version.

7. The computer-implemented method of claim 1 , an object of the one or more objects comprises a property specific to the object.

8. The computer-implemented method of claim 7 , wherein the property is that the object executes in a sandbox environment.

9. The computer-implemented method of claim 1 , wherein application artifacts of the application package are stored in a storage location that a provider of the application package cannot alter.

10. The computer-implemented method of claim 1 , further comprising:

creating a shared content role, the shared content role a nested role provisioned in the application package representing shared content available to the application instance.

11. A data platform comprising:

at least one processor; and

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

creating an application instance of an application package having a versioned schema;

creating one or more system roles for the application instance based on the versioned schema;

creating one or more user roles for the application instance based on the versioned schema;

creating one or more objects of the application instance based on the versioned schema;

granting one or more usages to the one or more user roles based on the versioned schema, the one or more usages comprising use privileges to access objects of the application package; and

determining, by a first procedure, a version context of a second procedure based on a versioned schema, wherein the version context of the second procedure is determined by rules comprising;

in response to determining the second procedure is associated with a call context, use a version of a call context of the first procedure and the second procedure;

in response to determining there is a global version set on a parent database of the first procedure and the second procedure, use the global version; and

in response to determining the second procedure not associated with the call context and no global version set on the parent database, use an active version associated with the versioned schema.

12. The data platform of claim 11 , wherein the objects of the application package comprise executable objects.

13. The data platform of claim 12 , wherein the executable objects are versioned and are updated when an application package is upgraded to a new version.

14. The data platform of claim 11 , wherein the objects of the application package comprise shared data objects.

15. The data platform of claim 11 , wherein a subset of objects of the one or more objects created in the application instance are versioned objects that are upgraded when the application package is upgraded to a new version.

16. The data platform of claim 11 , wherein a subset of objects of the one or more objects created in the application instance are unversioned objects that are not upgraded when the application package is upgraded to a new version.

17. The data platform of claim 11 , an object of the one or more objects comprises a property specific to the object.

18. The data platform of claim 17 , wherein the property is that the object executes in a sandbox environment.

19. The data platform of claim 11 , wherein application artifacts of the application package are stored in a storage location that a provider of the application package cannot alter.

20. The data platform of claim 11 , wherein the operations further comprise:

creating a shared content role, the shared content role a nested role provisioned in the application package representing shared content available to the application instance.

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

creating an application instance of an application package having a versioned schema;

creating one or more system roles for the application instance based on the versioned schema;

creating one or more user roles for the application instance based on the versioned schema;

creating one or more objects of the application instance based on the versioned schema;

granting one or more usages to the one or more user roles based on the versioned schema, the one or more usages comprising use privileges to access objects of the application package; and

determining, by a first procedure, a version context of a second procedure based on a versioned schema, wherein the version context of the second procedure is determined by rules comprising;

in response to determining the second procedure is associated with a call context, use a version of a call context of the first procedure and the second procedure;

in response to determining there is a global version set on a parent database of the first procedure and the second procedure, use the global version; and

in response to determining the second procedure not associated with the call context and no global version set on the parent database, use an active version associated with the versioned schema.

22. The computer-storage medium of claim 21 , wherein the objects of the application package comprise executable objects.

23. The computer-storage medium of claim 22 , wherein the executable objects are versioned and are updated when an application package is upgraded to a new version.

24. The computer-storage medium of claim 21 , wherein the objects of the application package comprise shared data objects.

25. The computer-storage medium of claim 21 , wherein a subset of objects of the one or more objects created in the application instance are versioned objects that are upgraded when the application package is upgraded to a new version.

26. The computer-storage medium of claim 21 , wherein a subset of objects of the one or more objects created in the application instance are unversioned objects that are not upgraded when the application package is upgraded to a new version.

27. The computer-storage medium of claim 21 , wherein an object of the one or more objects comprises a property specific to the object.

28. The computer-storage medium of claim 27 , wherein the property is that the object executes in a sandbox environment.

29. The computer-storage medium of claim 21 , wherein application artifacts of the application package are stored in a storage location that a provider of the application package cannot alter.

30. The computer-storage medium of claim 21 , wherein the operations further comprise:

creating a shared content role, the shared content role a nested role provisioned in the application package representing shared content available to the application instance.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2023
From: BIENKOWSKI, KAROL PAWEL; CARRU, DAMIEN; CHEN, JEREMY YUJUI; CHU, PUI KEI JOHNSTON; DAGEVILLE, BENOIT; GRAY, SCOTT C.; JAGTAP, UNMESH; MURALIDHAR, SUBRAMANIAN
To: SNOWFLAKE INC.
Reel/Frame 063451/0342 →
Cited By (2)
US 12,242,600 US 12,645,452