IP Library Patent Application 14437363
Patent Application
App. No. 14/437,363

EXECUTING A QUERY HAVING MULTIPLE SET OPERATORS

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 None
App. No.
14/437,363
Abstract

According to an example, a method for executing a query having multiple set operators includes adding an additional column that associates an identifier of the result table with data contained in the input result table in each input result table of an input query. The method also includes performing a Union All operation on the data contained in the input result tables to generate an intermediate result set, performing a Group By operation on the data contained in the intermediate result set to generate a grouped result set, wherein the Group By operation operates on various groups of rows and returns one row per each of the various groups, adding aggregation columns in the grouped result set containing counts of a number of times that each tuple exists in each of the input result tables, and applying a predicate on the grouped result set to execute the query.

Claims (44)

1 . A method for executing a query having multiple set operators, said method comprising:

adding an additional column in each of a plurality of input result tables of an input query, wherein the additional column associates an identifier of the input result table with data contained in the input result table;

performing a Union All operation on the data contained in the plurality of input result tables to generate an intermediate result set;

performing a Group By operation on the data contained in the intermediate result set to generate a grouped result set, wherein the Group By operation operates on various groups of rows and returns one row per each of the various groups;

adding aggregation columns in the grouped result set containing counts of a number of times that each tuple exists in each of the plurality of input result tables; and

applying a predicate on the grouped result set to execute the query.

2 . The method according to claim 1 , further comprising:

scanning the data contained in the plurality of input result tables prior to adding the additional column in each of the plurality of input result tables.

3 . The method according to claim 1 , wherein performing the Group By operation further comprises performing a single Group By operation for a combination of the multiple set operators.

4 . The method according to claim 1 , wherein the multiple set operators comprise at least one of Union, Intersect, and Except.

5 . The method according to claim 1 , wherein adding aggregation columns further comprises adding a number of aggregation columns that is equal to the number of the plurality of input result tables.

6 . The method according to claim 1 , further comprising:

generating the predicate from a set operator parse tree containing a plurality of non-leaf nodes that define any of the set operators and a plurality of leaf nodes that define respective queries, wherein generating the predicate comprises:

creating respective predicates corresponding to the queries; and

creating the predicate corresponding to the respective predicates according to a type of the parent node.

7 . The method according to claim 6 , further comprising:

creating a plurality of sets of predicates for respective sets of leaf nodes; and

creating the predicate to include combinations of the plurality of sets of predicates according to types of parent nodes of the respective sets of leaf nodes.

8 . A database manager to execute a query having multiple set operators, said database manager comprising:

a memory storing a set of machine readable instructions to:

receive a request for a query containing multiple set operators;

add an additional column in each of a plurality of input result relations of an input query, wherein the additional column associates an identifier of the input result relation with data contained in the input result relation;

perform a Union All operation on the data contained in the plurality of input result relations to generate an intermediate result relation;

perform a Group By operation on the data contained in the intermediate result relation to generate a grouped result relation, wherein the Group By operation operates on various groups of rows and returns one row per each of the various groups;

add aggregation columns in the grouped result relation containing counts of a number of times that each tuple exists in each of the plurality of input result relations; and

apply a predicate on the grouped result relation to execute the query; and

a processor to implement the machine readable instructions.

9 . The database manager according to claim 8 , wherein the machine readable instructions are further to:

scan the data contained in the plurality of result relations prior to the additional column in each of the plurality of input relations being added.

10 . The database manager according to claim 8 , wherein the machine readable instructions are to perform a single Group By operation for a combination of the mix of set operators.

11 . The database manager according to claim 8 , wherein the set of operators comprises at least one of Union, Intersect, and Except.

12 . The database manager according to claim 8 , wherein the machine readable instructions are further to:

generate the predicate from a set operator parse tree containing a parent node and a plurality of leaf nodes that define respective queries.

13 . The database manager according to claim 12 , wherein the predicate is generated through creation of respective predicates corresponding to the queries and creation of the predicate corresponding to the respective predicates according to a type of the parent node.

14 . A non-transitory computer readable storage medium on which is stored machine readable instructions that when executed by a processor, implement a method for executing a query containing multiple set operators, said machine readable instructions comprising code to:

receive the query;

scan a plurality of input result tables of the query;

add an additional column in each of the plurality of input result tables, wherein the additional column associates an identifier of the input result table with data contained in the input result table;

perform a Union All operation on the data contained in the plurality of input result tables to generate an intermediate result set;

perform a Group By operation on the data contained in the intermediate result set to generate a grouped result set, wherein the Group By operation operates on various groups of rows and returns one row per each of the various groups;

add aggregation columns in the grouped result set containing counts of a number of times that each tuple exists in each of the plurality of input result tables; and

apply a predicate on the grouped result table to execute the query.

15 . The non-transitory computer readable storage medium according to claim 14 , said machine readable instructions further comprising code to:

perform a single Group By operation for a combination of the multiple set operators.

Assignments (8)
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 →
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 →
CHANGE OF NAME Recorded Feb 25, 2020
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 052010/0029 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
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 Apr 21, 2015
From: DAVE, JAIMIN MUKESH; FULLER, MATTHEW STEVEN; BODAGALA, SREENATH
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 035460/0435 →