IP Library Granted Patent US 11,074,259
Granted Patent B2
US 11,074,259 · App. 15/557,890 · Granted Jul 27, 2021

Optimize query based on unique attribute

Inventors: Kahlil Bre Oppenheimer (Cambridge, MA); Jaimin M. Dave (Cambridge, MA)
Assignee: Micro Focus LLC
G06F16/24549G06F16/2453G06F16/24544
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,074,259
App. No.
15/557,890
Granted
Jul 27, 2021
Kind
B2
Abstract

Example implementations relate to optimized queries based on unique attributes. For example, a computing device may include a processor. The processor may receive a query and identify at least one unique attribute based on at least one operation specified in the query or based on an attribute property associated with at least one relational table relevant to the query, the attribute property indicating uniqueness. The processor may modify a data structure representing the query, the data structure having nodes each associated with a respective relational table and the data structure modified to specify a subset of the nodes that are associated with the at least one unique attribute. The processor may optimize the query based on the data structure modified to specify the subset.

Claims (36)

1. A computing device, comprising:

a processor to:

receive a query;

identify at least one unique attribute based on at least one operation specified in the query or based on an attribute property associated with at least one relational table relevant to the query, the at least one unique attribute property indicating uniqueness;

annotate a data structure representing the query, the data structure having nodes each being associated with a respective relational table, the data structure modified to specify a subset of the nodes that are associated with the at least one unique attribute, wherein a portion of the nodes of the data structure are each associated with a sub-query and wherein annotating the data structure includes the processor modifying a sub-query data structure associated with each node of the portion of the nodes, each sub-query data structure being modified based on the at least one unique attribute; and

optimize the query based on the data structure modified to specify the subset.

2. The computing device of claim 1 , wherein the processor is further to process the query, based on the subset of the nodes specified in the modified data structure as associated with the at least one unique attribute, to obtain results of the query.

3. The computing device of claim 1 , wherein the query is optimized by optimizing the at least one operation specified in the query, the at least one operation specified in the query being associated with the at least one unique attribute.

4. The computing device of claim 3 , wherein the at least one operation specified in the query includes at least one of an order by clause, a group by clause, and a join clause.

5. The computing device of claim 1 , wherein the data structure represents a join graph for the query, wherein the join graph comprises edges that each connect two nodes, wherein each edge represents a distinct join in the join graph.

6. The computing device of claim 1 , wherein annotating the data structure comprises annotating each node with a set of attributes that are guaranteed to have unique values for that node.

7. A method, comprising;

receiving, by a computing device, a query;

determining, by the computing device, at least one unique attribute based on at least one operation specified in the query or based on an attribute property associated with at least one relational table relevant to the query, the attribute property indicating uniqueness;

accessing, by the computing device, a data structure representing the query, the data structure having nodes each associated with a respective relational table;

annotating, by the computing device, the data structure to specify a subset of the nodes that are associated with the at least one unique attribute, wherein a portion of the nodes of the data structure are each associated with a sub-query and wherein annotating the data structure includes annotating a sub-query data structure associated with each node of the portion of the nodes, each sub-query data structure being annotated based on the at least one unique attribute; and

generating, by the computing device, an optimization of the query based on the data structure annotated to specify the subset.

8. The method of claim 7 , further comprising:

processing, by the computing device, the optimization of the query; and

providing, by the computing device, results of the processing as a response to the query.

9. The method of claim 7 , wherein generating the optimization includes optimizing the at least one operation specified in the query, the at least one operation specified in the query being associated with the at least one unique attribute.

10. The method of claim 9 , wherein the at least one operation specified in the query includes at least one of an order by clause, a group by clause, and a join clause.

11. The method of claim 7 , wherein the data structure represents a join graph for the query, wherein the join graph comprises edges that each connect two nodes, wherein each edge represents a distinct join in the join graph.

12. The method of claim 7 , wherein annotating the data structure comprises annotating each node with a set of attributes that are guaranteed to have unique values for that node.

13. A non-transitory machine-readable storage medium storing instructions that, if executed by at least one processor of a computing device, cause the computing device to:

receive a query;

identify at least one unique attribute based on at least one operation specified in the query or based on an attribute property associated with at least one relational table relevant to the query, the at least one unique attribute property indicating uniqueness;

access a data structure representing the query, the data structure having nodes each being associated with a respective relational table;

annotate the data structure to specify a subset of the nodes that are associated with the at least one unique attribute, wherein a portion of the nodes of the data structure are each associated with a sub-query and wherein modifying the data structure includes modifying a sub-query data structure associated with each node of the portion of the nodes, each sub-query data structure being modified based on the at least one unique attribute;

determine an optimization of the query based on the data structure modified to specify the subset; and

process the optimization of the query.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the instructions further cause the computing device to return results of the optimization as a response to the query.

15. The non-transitory machine-readable storage medium of claim 13 , wherein the optimization is determined by optimizing the at least one operation specified in the query, the at least one operation specified in the query being associated with the at least one unique attribute.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the at least one operation specified in the query includes at least one of an order by clause, a group by clause, and a join clause.

17. The non-transitory machine-readable storage medium of claim 13 , wherein the data structure represents a join graph for the query, wherein the join graph comprises edges that each connect two nodes, wherein each edge represents a distinct join in the join graph.

18. The non-transitory machine-readable storage medium of claim 13 , wherein annotating the data structure comprises annotating each node with a set of attributes that are guaranteed to have unique values for that node.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 043843/0641 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: OPPENHEIMER, KAHLIL BRE; DAVE, JAIMIN MUKESH
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 043573/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043848/0001 →
Continuity (1)
Related Publication 20180075102A1 · Mar 15, 2018