IP Library › Granted Patent US 12,099,490
Granted Patent B2
US 12,099,490 · App. 17/751,296 · Granted Sep 24, 2024

Table scan predicate with integrated semi-join filter

Inventors: Manuel Mayr (Walldorf, DE); Wolfgang Stephan (Heidelberg, DE); Till Merker (Sandhausen, DE)
Assignee: SAP SE
G06F16/2282G06F16/221G06F16/2237G06F16/2428G06F16/2456
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 12,099,490
App. No.
17/751,296
Granted
Sep 24, 2024
Kind
B2
Abstract

A table scan predicate with integrated semi-join filter is provided. A method includes receiving a query including: a request to join first data from a first table and second data from a second table, a first predicate for use in a table scan of the second table, and a second predicate including an expression associated with the first data from the first table and a reference to a column associated with the second data from the second table. The method may include transforming the second predicate into a dynamic predicate for execution of the query. the method may include applying the dynamic predicate to at least the first data. The method may include executing the query by at least scanning the second table based on the first predicate and filtered first data from the application of the dynamic predicate. Related systems and articles of manufacture are provided.

Claims (34)

1. A system, comprising:

at least one data processor; and

at least one memory including instructions which when executed by the at least one processor cause operations comprising:

receiving a query including a join operator, a first predicate, a second predicate, and a reference, wherein the join operator references first data from a first table located at a first site and second data from a second table located at a second site different from the first site, the first predicate for use in a table scan of the second table, the second predicate including an expression associated with the first data from the first table, and the reference to a column associated with the second data from the second table;

transforming the second predicate into a dynamic predicate for execution of the query, wherein the dynamic predicate includes at least one value list operator that references one or more values that are not known at compile time but are gathered at query execution time;

applying the dynamic predicate to at least the first data, wherein the applying comprises collecting the first data based on the expression and filtering the column associated with the second data from the second table based on a value identifier mapped to at least one vector of data representing the collected first data; and

executing the query by at least scanning the second table based on the first predicate and the filtered column from the applying of the dynamic predicate to at least the first data.

2. The system of claim 1 , wherein the transforming of the second predicate into the dynamic predicate comprises converting the second predicate to a first child node of the table scan.

3. The system of claim 2 , wherein the transforming of the second predicate into the dynamic predicate further comprises including the first predicate as a second child node of the table scan in conjunction with the dynamic predicate.

4. The system of claim 3 , wherein the conjunction is an AND clause.

5. The system of claim 1 , wherein the collecting further comprises parallelizing the first data, wherein the applying further comprises merging, after the collecting, the first data, and wherein the merging comprises uniquifying the first data.

6. The system of claim 5 , wherein the uniquifying comprises removing duplicate values from the at least one vector of data.

7. The system of claim 1 , wherein the dynamic predicate includes a collection operator, a merge operator, and a filter operator.

8. The system of claim 1 , wherein the dynamic predicate is implemented as a semi-join reduction to reduce a number of rows in at least the second table for use in the scanning of the second table.

9. A computer-implemented method comprising:

receiving, by a database management system, a query including a join operator, a first predicate, a second predicate, and a reference, wherein the join operator references first data from a first table located at a first site and second data from a second table located at a second site different from the first site, the first predicate for use in a table scan of the second table, the second predicate including an expression associated with the first data from the first table, and the reference to a column associated with the second data from the second table;

transforming the second predicate into a dynamic predicate for execution of the query, wherein the dynamic predicate includes at least one value list operator that references one or more values that are not known at compile time but are gathered at query execution time;

applying the dynamic predicate to at least the first data, wherein the applying comprises collecting the first data based on the expression and filtering the column associated with the second data from the second table based on a value identifier mapped to at least one vector of data representing the collected first data; and

executing the query by at least scanning the second table based on the first predicate and the filtered column from the applying of the dynamic predicate to at least the first data.

10. The method of claim 9 , wherein the transforming of the second predicate into the dynamic predicate comprises converting the second predicate to a first child node of the table scan.

11. The method of claim 10 , wherein the transforming of the second predicate into the dynamic predicate further comprises including the first predicate as a second child node of the table scan in conjunction with the dynamic predicate.

12. The method of claim 11 , wherein the conjunction is an AND clause.

13. The method of claim 9 , wherein the collecting comprises parallelizing the first data; wherein the applying further comprises merging, after the collecting, the first data; and wherein the merging comprises uniquifying the first data.

14. The method of claim 13 , wherein the uniquifying comprises removing duplicate values from the at least one vector of data.

15. The method of claim 9 , wherein the dynamic predicate includes a collection operator, a merge operator, and a filter operator.

16. The method of claim 9 , wherein the dynamic predicate is implemented as a semi-join reduction to reduce a number of rows in at least the second table for use in the scanning of the second table.

17. A non-transitory computer-readable medium storing instructions, which when executed by at least one data processor, result in operations comprising:

receiving, by a database management system, a query including a join operator, a first predicate, a second predicate, and a reference, wherein the join operator references first data from a first table located at a first site and second data from a second table located at a second site different from the first site, the first predicate for use in a table scan of the second table, the second predicate including an expression associated with the first data from the first table, and the reference to a column associated with the second data from the second table;

transforming the second predicate into a dynamic predicate for execution of the query, wherein the dynamic predicate includes at least one value list operator that references one or more values that are not known at compile time but are gathered at query execution time;

applying the dynamic predicate to at least the first data, wherein the applying comprises collecting the first data based on the expression and filtering the column associated with the second data from the second table based on a value identifier mapped to at least one vector of data representing the collected first data; and

executing the query by at least scanning the second table based on the first predicate and the filtered column from the applying of the dynamic predicate to at least the first data.

18. The non-transitory computer-readable medium of claim 17 , wherein the transforming of the second predicate into the dynamic predicate comprises converting the second predicate to a child node of the table scan.

19. The non-transitory computer-readable medium of claim 18 , wherein the transforming of the second predicate into the dynamic predicate further comprises including the first predicate as a second child node of the table scan in conjunction with the dynamic predicate.

20. The non-transitory computer-readable medium of claim 19 , wherein the conjunction is an AND clause.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2022
From: MAYR, MANUEL; STEPHAN, WOLFGANG; MERKER, TILL
To: SAP SE
Reel/Frame 059996/0644 →
Continuity (1)
Related Publication 20230376474A1 · Nov 23, 2023