IP Library Granted Patent US 10,180,960
Granted Patent B2
US 10,180,960 · App. 14/398,229 · Granted Jan 15, 2019

Query processing

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 10,180,960
App. No.
14/398,229
Granted
Jan 15, 2019
Kind
B2
Abstract

A method for query processing includes receiving a query, and determining a query type by determining if the query is a structured query language (SQL) query including multiple distinct aggregates (MDAs), or a SQL query including cube, rollup or grouping sets operations. Based on the determination, the method includes processing the query to generate an output, and performing a predetermined number of maximum group by operations on the output based on the query type to generate a response to the query.

Claims (40)

1. A method for query processing, the method comprising:

receiving a query, the query comprising a structured query language (SQL) query;

determining a query type of the query based on whether the query comprises multiple distinct aggregates (MDAs) or cube, rollup or grouping sets operations;

based on the determined query type, processing the query to generate an output comprising intermediate results;

processing the intermediate results that are generated during the processing of the query, wherein the intermediate results are maintained in a single stream to prevent a distributed deadlock; and

performing, by a processor, a predetermined number of maximum group by operations on the output based on the query type to generate a response to the query.

2. The method of claim 1 , wherein the predetermined number of maximum group by operations is two if the query type is a SQL query including MDAs.

3. The method of claim 1 , wherein the predetermined number of maximum group by operations is one if the query type is a SQL query including cube, rollup or grouping sets operations.

4. The method of claim 1 , further comprising:

if the query type is a SQL query including MDAs, generating inner and outer group by operations for the SQL query including MDAs.

5. The method of claim 4 , wherein the inner group by operation includes no aggregates.

6. The method of claim 4 , wherein the outer group by operation includes a determination of aggregates for the SQL query including MDAs.

7. The method of claim 1 , further comprising:

if the query type is a SQL query including the cube operation, generating 2 m groupings, where m is a number of grouping columns for the cube operation.

8. The method of claim 1 , further comprising:

if the query type is a SQL query including the rollup operation, generating m+k+1 groupings, where m is a number of grouping columns and k is a number of aggregates for the rollup operation.

9. The method of claim 1 , further comprising:

if the query type is a SQL query including the grouping sets operation, generating m+k+1 groupings, where m is a number of grouping columns and k is a number of aggregates for the grouping sets operation.

10. The method of claim 1 , further comprising:

generating groupings to answer the query based on the query type.

11. A query processing apparatus comprising:

a memory storing a module comprising machine readable instructions to:

receive a query, the query comprising a structured query language (SQL) query;

determine a query type of the query based on whether the query comprises multiple distinct aggregates (MDAs), or cube, rollup or grouping sets operations;

based on the determined query type, process the query to generate an output comprising intermediate results;

process the intermediate results that are generated during the processing of the query, wherein the intermediate results are maintained in a single stream to prevent a distributed deadlock; and

perform a single or two successive group by operations on the output based on the query type to generate a response to the query; and

a processor to implement the module.

12. The apparatus of claim 11 , further comprising machine readable instructions to:

perform the two successive group by operations if the query type is the SQL query including MDAs.

13. The apparatus of claim 11 , further comprising machine readable instructions to:

generate inner and outer group by operations for a SQL query including MDAs.

14. The apparatus of claim 11 , further comprising machine readable instructions to:

perform the single group by operation if the query type is the SQL query including cube, rollup or grouping sets operations.

15. A non-transitory computer readable medium having stored thereon machine readable instructions for query processing, the machine readable instructions when executed cause a computer system to:

receive a query;

determine a query type by determining if the query is a structured query language (SQL) query including multiple distinct aggregates (MDAs), or a SQL query including cube, rollup or grouping sets operations;

based on the determination, process the query to generate an output comprising intermediate results;

process the intermediate results that are generated during the processing of the query, wherein the intermediate results are maintained in a single stream to prevent a distributed deadlock; and

perform, by a processor, two successive group by operation on the output if the query type is the SQL query including MDAs, or one group by operation on the output if the query type is the SQL query including the cube, rollup or grouping sets operations to generate a response to the query.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Dec 22, 2021
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 058569/0152 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: BEAR, CHARLES EDWARD; BODAGALA, SREENATH; FULLER, MATTHEW STEVEN; LAMB, ANDREW ALLINSON
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 035156/0206 →