IP Library Granted Patent US 11,409,741
Granted Patent B2
US 11,409,741 · App. 15/993,438 · Granted Aug 9, 2022

Enabling data format specific database functionalities over existing data types by marking operand values

Inventors: Beda Christoph Hammerschmidt (Los Gatos, CA); Zhen Hua Liu (San Mateo, CA); Vikas Arora (San Francisco, CA); Prakashkumar Thiagarajan (San Jose, CA); Douglas James McMahon (Redwood City, CA)
Assignee: Oracle International Corporation
G06F16/24542G06F16/221G06F16/25G06F16/80
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,409,741
App. No.
15/993,438
Granted
Aug 9, 2022
Kind
B2
Abstract

Functionalities of new data types are enabled for data stored using native data types (“recognized data types”) supported by DBMSs. Values having a latent data type may be stored using a recognized data type of a DBMS. That is, a value stored in a database table may be recognized by a DBMS as having a recognized data type (e.g., character string) but the value may also include information that indicates the value conforms to a particular latent data type. DBMSs compile database statements. The database statement can contain multiple expressions that may specify a latent data type or that may have a recognized data type but that also imply latent data types. By determining that various expressions have latent data types, operations that rely on the expressions as having a latent data type may be validated in a query and executed accordingly.

Claims (32)

1. A method, comprising:

a database management system (DBMS) compiling a database statement, wherein the DBMS compiling comprises:

determining that an expression in said database statement indicates a latent data type, said expression having a recognized data type defined by the DBMS;

in response to determining that said expression in said database statement indicates said latent data type, generating an execution plan that treats said expression as said latent data type instead of said recognized data type;

wherein generating said execution plan that treats said expression as said latent data type instead of said recognized data type includes generating an execution plan that includes an execution plan operator that receives a column as said recognized data type and performs an operation on the column based on the latent data type;

executing said execution plan.

2. The method of claim 1 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a column referenced by said database statement is defined by said DBMS to be constrained to the latent data type, wherein said recognized data type is defined for said column said DBMS.

3. The method of claim 1 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a column referenced by said database statement is referenced as an operand in a function, wherein said function expects said operand to have said latent data type.

4. The method of claim 1 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a function referenced by said database statement returns data having said latent data type.

5. The method of claim 1 , wherein determining that said expression in said database statement indicates said latent data type includes determining that all branches of a case statement return said latent data type.

6. The method of claim 1 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a function referenced by said database statement converts data to said latent data type.

7. The method of claim 1 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a TREAT AS clause specifies said latent data type.

8. The method of claim 1 , further including:

in response to determining that said expression in said database statement indicates a latent data type, rewriting said database statement to include a TREAT AS clause that identifies said latent type, wherein generating said execution plan includes generating said execution plan that treats said expression as said latent data type based on said rewriting said database statement.

9. The method of claim 1 , further comprising determining that said expression in said database statement indicates said latent data type by using a DBMS Application Programming Interface (API).

10. One or more non-transitory computer-readable media storing sequences of one or more instructions which, when executed by one or more processors, cause:

a database management system (DBMS) compiling a database statement, wherein the DBMS compiling comprises:

determining that an expression in said database statement indicates a latent data type, said expression having a recognized data type defined by the DBMS;

in response to determining that said expression in said database statement indicates said latent data type, generating an execution plan that treats said expression as said latent data type instead of said recognized data type;

wherein generating said execution plan that treats said expression as said latent data type instead of said recognized data type includes generating an execution plan that includes an execution plan operator that receives a column as said recognized data type and performs an operation on the column based on the latent data type;

executing said execution plan.

11. The one or more non-transitory computer-readable media of claim 10 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a column referenced by said database statement is defined by said DBMS to be constrained to the latent data type, wherein said recognized data type is defined for said column said DBMS.

12. The one or more non-transitory computer-readable media of claim 10 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a column referenced by said database statement is referenced as an operand in a function, wherein said function expects said operand to have said latent data type.

13. The one or more non-transitory computer-readable media of claim 10 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a function referenced by said database statement returns data having said latent data type.

14. The one or more non-transitory computer-readable media of claim 10 , wherein determining that said expression in said database statement indicates said latent data type includes determining that all branches of a case statement return said latent data type.

15. The one or more non-transitory computer-readable media of claim 10 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a function referenced by said database statement converts data to said latent data type.

16. The one or more non-transitory computer-readable media of claim 10 , wherein determining that said expression in said database statement indicates said latent data type includes determining that a TREAT AS clause specifies said latent data type.

17. The one or more non-transitory computer-readable media of claim 10 , the sequences of one or more instructions further including instructions that, when executed by said one or more processors, cause:

in response to determining that said expression in said database statement indicates a latent data type, rewriting said database statement to include a TREAT AS clause that identifies said latent type, wherein generating said execution plan includes generating said execution plan that treats said expression as said latent data type based on said rewriting said database statement.

18. The one or more non-transitory computer-readable media of claim 10 , the sequences of one or more instructions further including instructions that, when executed by said one or more processors, cause determining that said expression in said database statement indicates said latent data type by using a DBMS Application Programming Interface (API).

19. The method of claim 1 , wherein said latent data type and said recognized data types have different data types.

20. The one or more non-transitory computer-readable media of claim 10 , wherein said latent data type and said recognized data types have different data types.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2019
From: HAMMERSCHMIDT, BEDA CHRISTOPH; LIU, ZHEN HUA; ARORA, VIKAS; THIAGARAJAN, PRAKASHKUMAR; MCMAHON, DOUGLAS JAMES
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 049210/0397 →
Continuity (3)
Provisional Application 62566365 · Sep 30, 2017
Related Publication 20190370373A1 · Dec 5, 2019
Related Publication 20200117736A9 · Apr 16, 2020