IP Library Granted Patent US 9,633,075
Granted Patent B2
US 9,633,075 · App. 14/311,653 · Granted Apr 25, 2017

Framework for re-writing database queries

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 9,633,075
App. No.
14/311,653
Granted
Apr 25, 2017
Kind
B2
Abstract

Embodiments relate to re-writing database query plans, and visualizing such re-written query plans. A query re-write framework includes a query normalization engine in communication with a rule catalog comprising query re-write rules in the form of rule classes. The framework receives as input, a query plan graph to be re-written. Based upon the engine's application of re-write rules from the catalog, the framework produces a re-written query plan graph as output. An interface component of the framework may provide a visualization of the re-written query plan graph as part of a dashboard. A user may access the framework to enable/disable existing rules in the catalog, add new rules to the catalog, and/or control a sequence and a precedence in which rules are applied to re-write the query plan. A user may interact with the visualization of the re-written query plan for purposes of de-bugging, re-write optimization, and/or query development.

Claims (40)

1. A computer implemented method comprising:

providing an engine in communication with a rule catalog comprising a plurality of query plan re-write rules including a first query plan re-write rule specifying a top-down traversal order and a second query plan re-write rule specifying a bottom-up traversal order;

causing the engine to receive a query plan as an input;

causing the engine to reference the rule catalog to generate a re-written query plan by selectively applying the first query plan re-write rule to the query plan;

causing the engine to store the re-written query plan in a non-transitory computer readable storage medium;

causing the engine to reference the re-written query plan in order to generate a visualization comprising a graph including an operation node and a table node; and

causing the engine to communicate the visualization to an interface for display in a dashboard, wherein the dashboard further includes a change log separate from the graph and reflecting changes to the re-written query plan in a format comprising an identifier of the operation node, an operation type, an updated parent node identifier, and an identifier of the query plan re-write rule.

2. A method as in claim 1 wherein the first query plan re-write rule comprises a property specifying an operator pattern.

3. A method as in claim 1 wherein the first query plan re-write rule comprises a property specifying whether the first query plan re-write rule is indispensable.

4. A method as in claim 1 further comprising:

causing the engine to reference the rule catalog to generate a further re-written query plan by applying a third query plan re-write rule to the re-written query plan.

5. A method as in claim 4 wherein the third query plan re-write rule comprises a property specifying a context.

6. A method as in claim 5 wherein the context comprises a sequence of applying the third query plan re-write rule after the first query plan re-write rule.

7. A method as in claim 4 wherein the rule catalog receives a user input specifying a sequence of applying the first query plan re-write rule prior to application of the third query plan re-write rule.

8. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:

providing an engine in communication with a rule catalog comprising a plurality of query plan re-write rules including a first query plan re-write rule specifying a top-down traversal order and a second query plan re-write rule specifying a bottom-up traversal order;

causing the engine to receive a query plan as an input;

causing the engine to reference the rule catalog to generate a re-written query plan by selectively applying the first query plan re-write rule to the query plan;

causing the engine to store the re-written query plan in a non-transitory computer readable storage medium;

causing the engine to reference the rule catalog to generate a further re-written query plan by applying a third query plan re-write rule to the re-written query plan;

causing the engine to reference the re-written query plan in order to generate a visualization comprising a graph including an operation node and a table node; and

causing the engine to communicate the visualization to an interface for display in a dashboard, wherein the dashboard further includes a change log separate from the graph and reflecting changes to the re-written query plan in a format comprising an identifier of the operation node, an operation type, an updated parent node identifier, and an identifier of the query plan re-write rule.

9. A non-transitory computer readable storage medium as in claim 8 wherein the first query plan re-write rule comprises a property specifying an operator pattern.

10. A non-transitory computer readable storage medium as in claim 8 wherein the first query plan re-write rule comprises a property specifying whether the first query plan re-write rule is indispensable.

11. A non-transitory computer readable storage medium as in claim 8 wherein the third query plan re-write rule comprises a property specifying a context.

12. A non-transitory computer readable storage medium as in claim 11 wherein the context comprises a sequence of applying the third query plan re-write rule after the first query plan re-write rule.

13. A non-transitory computer readable storage medium as in claim 8 wherein the rule catalog receives a user input specifying a sequence of applying the first query plan re-write rule prior to application of the third query plan re-write rule.

14. A computer system comprising:

one or more processors;

a software program, executable on said computer system, the software program configured to:

provide an engine in communication with a rule catalog comprising a plurality of query plan re-write rules including a first query plan re-write rule specifying a top-down traversal order and a second query plan re-write rule specifying a bottom-up traversal order;

cause the engine to receive a query plan as an input;

cause the engine to reference the rule catalog to generate a re-written query plan by selectively applying the first query plan re-write rule to the query plan, the first query plan re-write rule comprising a property specifying an operator pattern;

cause the engine to store the re-written query plan in a non-transitory computer readable storage medium;

cause the engine to reference the rule catalog to generate a further re-written query plan by applying a third query plan re-write rule to the re-written query plan;

cause the engine to reference the re-written query plan in order to generate a visualization comprising a graph including an operation node and a table node; and

cause the engine to communicate the visualization to an interface for display in a dashboard, wherein the dashboard further includes a change log separate from the graph and reflecting changes to the re-written query plan in a format comprising an identifier of the operation node, an operation type, an updated parent node identifier, and an identifier of the query plan re-write rule.

15. A computer system as in claim 14 wherein the first query plan re-write rule further comprises a property specifying whether the first query plan re-write rule is indispensable.

16. A computer system as in claim 14 wherein the third query plan re-write rule comprises a property specifying a context comprising a sequence of applying the third query plan re-write rule after the first query plan re-write rule.

17. A computer system as in claim 14 wherein the software program is further configured to cause the rule catalog to receive a user input specifying a sequence of applying the first query plan re-write rule prior to application of the third query plan re-write rule.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2014
From: SONG, SANG IL; YOON, YONGSIK
To: SAP AG
Reel/Frame 033156/0908 →