DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Continued Examination Under 37 CFR 1.114
2. A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on April 7th 2026 has been entered.
Response to Amendment
3. The Amendment filed on April 7th 2026 has been entered. Claims 1, , 13 and 20 have been amended, claims 1, 3, 4, 6 – 8, 10 – 13, 15, 16 and 18 - 20 are pending in the application, with claims 2, 5, 9, 14, 17 and 21 cancelled from consideration.
Response to Arguments
35 U.S.C. §103
4. Applicant's arguments, see Remarks pp. 9 -13, filed April 7th 2026, with
respect to the rejections of claims 1, 10, 11, 13 and 20 under 35 U.S.C. §103 have been fully considered and they are persuasive.
The crux of Applicant arguments is that the cited art fails to teach the independent claims as amended.
Examiner respectfully agrees
Upon further consideration new grounds of rejection have been necessitated due
to Applicant's amendments and are made in view of Bear et al., (United States Patent Publication Number 20120317094) hereinafter Bear
Claim Rejections – 35 U.S.C. §103
5. The following is a quotation of 35 U.S.C. 103 which forms the basis for all
obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
6. The factual inquiries set forth in Graham v John Deere Co., 383 U.S. 1, 148 USPQ
459 (1966), that are applied for establishing a background for determining obviousness
under 35 U.S.C. 103 are summarized as follows:
a. Determining the scope and contents of the prior art
b. Ascertaining the differences between the prior art and the claims at issue
c. Resolving the level of ordinary skill in the pertinent art
d. Considering objective evidence present in the application indicating
obviousness or nonobviousness
Claims 1, 10, 11, 13 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Sudipto R. Chowdhuri (United States Patent Publication Number 20060080285),hereinafter Chowdhuri in view of Faunce et al. (United States Patent Publication Number 2010/0169381), hereinafter referred to as Faunce in view of Cheng et al., (United States Patent Publication Number 20150261820) hereinafter Cheng and in further view of Bear et al., (United States Patent Publication Number 20120317094) hereinafter Bear
Regarding claim 1 Chowdhuri teaches a computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) comprising: generating a query execution plan (generating the query execution plan [0138]) for a received query;
1: /* Example */ [0096]
2: select state, sum(order_item) [0097]
3: from customer c, order o [0098]
4: where o.customer_id=c.customer_id [0099]
5: group by state [0100]
6: order by sum(order_item) [0101] such as “received query” detecting a TableScan Semi Join operator (an operator tree created from the basic physical operator tree which is an algorithm implementing a logical operator, (e.g. scan, sort-merge join, nested loop join, and so forth [0053]; [0154]) such as “TableScan Semi Join operator.” SEE step 4 of sample query above depicting an example of a semi-join [0099] with a predicate tree (predicates on a single table [0051]) such as “predicate tree” in the query execution plan; (query execution plan. [0138]) responsive to determining that pruning (Cost based pruning: Cost based pruning is a type of pruning technique where portions of a search space (tree shapes, permutations, access methods) are skipped purely based on cost estimates applicable to a query. [0036]); (Pruning: Is a technique of search space control in which only promising sub-plans are retained (i.e., the ones that could be part of the best total plan). The optimizer uses cost based pruning and heuristics based pruning. [0056]) the TableScan Semi Join operator (an operator tree created from the basic physical operator tree which is an algorithm implementing a logical operator, (e.g. scan, sort-merge join, nested loop join, and so forth [0053]; [0154]) such as “TableScan Semi Join operator.” SEE step 4 of sample query above depicting an example of a semi-join [0099] from the probe side of the HashJoin operator (Hash Join (Probe) [0172]) of the query execution plan; (query execution plan. [0138]) and executing (executing [0115]) a pruned version (return best operator tree with the least minimum cost [0143]) such as “pruned version” of the query execution plan (query execution plan. [0138]) that does not include (the first operator is not saved since its elapsed time was not less than the minimum cost [0143]) the TableScan Semi Join operator. (an operator tree created from the basic physical operator tree which is an algorithm implementing a logical operator, (e.g. scan, sort-merge join, nested loop join, and so forth [0053]; [0154]) such as “TableScan Semi Join operator.” SEE step 4 of sample query above depicting an example of a semi-join [0099]
Chowdhuri does not fully disclose wherein the query execution plan comprises a query plan fragment with a HashJoin operator, the query plan fragment comprising a build side of the HashJoin operator constructed from a first table and probe side of the HashJoin operator including a TableScan operator that operates on a second table based on a predicate tree: inserting a shared subplan into the build side of the HashJoin operator of the query execution plan, wherein the shared subplan is configured to push tuples based on the first table to both the build side of the HashJoin operator and the probe side of the HashJoin operator; replacing the TableScan operator in the probe side of the HashJoin operator; wherein the TableScan Semi Join operator receives the tuples pushed from the shared subplan to the probe side of the HashJoin operator; expanding the predicate tree to include 1) one or more predicates and 2) a value list, both of which are combined using an AND conjunction, such that when the value list is empty, it is determined, without evaluating the one or more predicates, that the TableScan Semi Join operator does not produce a result.
Faunce teaches expanding (Fig. 15 explode/exploding [0076]) the predicate tree (Fig. 5 expression tree [0015], [0069]) such as “predicate tree” to include 1) one or more predicates (one or more predicates that are implicitly AND-ed together [0051]) and 2) a value list, (Fig. 15 list of simple and discrete intersections [0029], [0074]) such as “value list” both of which are combined using an AND conjunction,
(AND: S3=S1 and S2=S1*S2
D3 =S1 and D2+S2 and Dl +Dl and D2=explode(S1)
*D2+explode(S2)*D1+D1 *D2-explode(S3) [0077]) such that when the value list (Fig. 15 list of simple and discrete intersections [0029], [0074]) such as “value list” is empty, (Fig. 15 Results in an empty set for simple intersections [0029], [0074]) it is determined, (determined [0051], [0052]) without evaluating (is null [0050]0 the one or more predicates, (ABS., plurality of predicates) (predicates [0032] – [0034], [0049] – [0053], [0057], [0060], [0066], [0072], [0074], [0078] and [0083]) that the TableScan Semi Join operator does not produce a result (operator negates the result [0055]) such as “does not produce a result”
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri to incorporate the teachings of Faunce wherein expanding the predicate tree to include 1) one or more predicates and 2) a value list, both of which are combined using an AND conjunction, such that when the value list is empty, it is determined, without evaluating the one or more predicates, that the TableScan Semi Join operator does not produce a result. By doing so a group directory entry might express information equivalent to the following: AND/Group-NOT (#3) (link #1), which would indicate that the group is preceded by an AND conjunction, that the group should be negated, that the group is part of the block labeled #3, and that block #3 should link to block #1.
Cheng teaches wherein the query execution plan (Figs. 3 & 7 query plan [0007, [0011]) comprises a query plan fragment with a HashJoin operator, (hash join operator [0050]) the query plan fragment comprising a build side (the right child of each join is the build side. [0046]) of the HashJoin operator (Fig. 9, (902) obtain build-side child operator for one or more parallel hash join operators in star or snowflake query plan [0052]) constructed from a first table (next most restrictive dimension table [0038]) and probe side (The left child of each join is a hash join probe side) of the HashJoin operator (Fig. 9, (910) hash join probe operator [0053]) including a TableScan operator (scan operator [0062]) that operates on a second table (builds a single hash table [0062]) based on a predicate tree: replacing (replace [0061]) the TableScan operator (scan operator [0062]) in the probe side of the HashJoin operator (Fig. 9, (910) hash join probe operator [0053])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce to incorporate the teachings of Cheng wherein the query execution plan comprises a query plan fragment with a HashJoin operator, the query plan fragment comprising a build side of the HashJoin operator constructed from a first table and probe side of the HashJoin operator including a TableScan operator that operates on a second tble based on a predicate tree: replacing the TableScan operator in the probe side of the HashJoin operator. By doing so the efficiency of the processing of queries utilizing star join or snowflake join is improved. Cheng [0024]
Bear teaches Inserting (These sideways information passing data structure “SIP” filters are then added to the root of a DAG representation of the query and pushed down while maintaining correctness. [0049]) a shared subplan (sideways information passing data structure (SIP) [0026], [0030]) SEE ALSO hash table SIP structure in a hash join operator [0084] into the build side (ABS., inner table) (inner table [0025], [0026]) such as “build side” of the HashJoin operator (hash join operator 502 and 504 [0050], [0084]) of the query execution plan, (query plan [0023]wherein the shared subplan (sideways information passing data structure (SIP) [0026], [0030]) SEE ALSO hash table SIP structure in a hash join operator [0084]is configured to push tuples based on the first table (The SIP filter data structures 51 and S2 are hash tables for tables "dim1" and "dim2", respectively. Initially, the SIP filters 512 and 514 are added to each join operator that they correspond to. Then, the push down process starts-the process attempts to push down the SIP filters 512 and 514 into the outer input of each respective join operator [0051]) to both the build side(ABS., inner table) (inner table [0026]) such as “build side” of the HashJoin operator (hash join operator 502 and 504 [0050], [0084]) and the probe side (ABS., outer table) (outer table [0025], [0026]) of the HashJoin operator; (hash join operator 502 and 504 [0050], [0084]) wherein the TableScan Semi Join operator (join operator 504 for search condition “fact.fk1=dim1.pk” [0050]) such as “TableScan Semi Join operator” receives the tuples pushed (filtered out rows [0053]) from the shared subplan (sideways information passing data structure (SIP) [0026], [0030]) SEE ALSO hash table SIP structure in a hash join operator [0084] to the probe side (ABS., outer table) (outer table [0025], [0026])of the HashJoin operator (hash join operator 502 and 504 [0050], [0084])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce and Cheng to incorporate the teachings of Bear wherein inserting a shared subplan into the build side of the HashJoin operator of the query execution plan, wherein the shared subplan is configured to push tuples based on the first table to both the build side of the HashJoin operator and the probe side of the HashJoin operator; wherein the TableScan Semi Join operator receives the tuples pushed from the shared subplan to the probe side of the HashJoin operator. By doing so by the time the execution engine 416 is ready to start scanning the "fact" table, it has already built up one of the structures Sl-S4. For example, assume that structure S2 was created. Then, when the scan on the "fact" table starts, it will apply the predicate "fact.a2 IN S2". Bear [0049]
Claims 13 and 20 correspond to claim 1 and are rejected accordingly
Regarding claim 10 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 1,
Chowdhuri as modified further teaches further comprising generating multiple pipelines (The following ParDriveScheduleToShelves routine is a core routine handling scheduling of multiple pipelines in a bushy tree (left deep tree included): [0194]) for execution of the query (invoked during query execution [0086])
Regarding claim 11 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 10,
Chowdhuri as modified further teaches wherein a first pipeline (Pipelines [0172]) is a build pipeline (Pipeline T4: START Hash Join(Build) [0172]) and wherein a second pipeline (Pipelines [0172]) is a probe pipeline. (Pipeline T5: START Hash Join(Probe) [0172])
Claims 3, 4, 6, 15, 16 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Sudipto R. Chowdhuri (United States Patent Publication Number 20060080285),hereinafter Chowdhuri in view of in view of Faunce et al. (United States Patent Publication Number 2010/0169381), hereinafter referred to as Faunce in view of Cheng et al., (United States Patent Publication Number 20150261820) hereinafter Cheng, in view of Bear et al., (United States Patent Publication Number 20120317094) hereinafter Bear and in further view of Heimel et al. (United States Patent Publication Number 2022/0292098), hereinafter referred to as Heimel.
Regarding claim 3 Chowdhuri in view of Faunce, Cheng and Bear , teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 1,
Chowdhuri as modified does not fully disclose wherein the value list comprises a list of values specified by an expression associated with a first table and a column index of a second table.
Heimel wherein the value list (generate a data structure based on the set of
values. As non-limiting example, the data structure can be a list of the values. [0105]) such as “value list” comprises a list of values (set of values [0105]) specified by an expression (a join clause to combine rows for at least two tables, [0101]) associated with the first table (first table (build side table) [0101]) and a column index (pruning index [0106]) such as “column index” of the second table (a second table (the probe side table) [0107])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce, Cheng and Bear to incorporate the teachings of Heimel wherein the value list comprises a list of values specified by an expression associated with a first table and a column index of a second table. By doing so the execution platform 110 prunes the scan set using the pruning index. Heimel [0106].
Claim 15 corresponds to claim 3 and is rejected accordingly
Regarding claim 4 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 1,
Chowdhuri as modified teaches further comprising: collecting a build expression (Pipeline Hash Join (Build) [0172] associated with (associated with [0054]) the received query; (user query [0095]) see query example [0096] – [0101]
Chowdhuri does not fully disclose assembling an in-list based on the build expression; and evaluating the value list based on the in-list.
Heimel teaches assembling an in-list (an in-list predicate [0085]) based on the build expression; (the execution platform 110 collects a set of values for the query predicate in performing a join build phase in which the compute service manager 108 builds a hash table where rows from a first table (the build side table) are stored using the join attribute(s) as the hash key. [0101]) and evaluating the value list (generate a data structure based on the set of values. As non-limiting example, the data structure can be a list of the values. [0105]) such as “value list” based on the in-list. (an in-list predicate [0085])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce, Cheng and Bear to incorporate the teachings of Heimel wherein assembling an in-list based on the build expression; and evaluating the value list based on the in-list. By doing so the job optimizer 214 also handles various data pruning operations and other data optimization techniques to improve the speed and efficiency of executing the job. Heimel [0050].
Claim 16 corresponds to claim 4 and is rejected accordingly
Regarding claim 6 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 1,
Chowdhuri does not fully disclose wherein determining whether the value list is empty comprises evaluating an expression associated with one or more tables at run-time.
Heimel teaches wherein determining whether the value list (data structure based on the set of values. As non-limiting example, the data structure can be a list of the values. [0105]) such as “value list” is empty (scan set initialization [0076]) such as “empty”comprises evaluating an expression (SELECT …
FROM fact
JOIN dimension ON (fact.dimension_id_foreign_key - dimension.id)
WHERE dimension.column1 = 'xyz'; [0097])
associated with (associated with [0086]) one or more tables at run-time (values for one or more predicates for the query (received at operation 820) may be unknown until runtime ( e.g., until execution of the query). For example, the query may include a join clause to combine rows from two or more tables. [0097])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce, Cheng and Bear to incorporate the teachings of Heimel wherein determining whether the value list is empty comprises evaluating an expression associated with one or more tables at run-time. By doing so the use of pruning indexes at runtime in processing queries in which predicate values are unknown until runtime can improve the speed at which the queries are executed while also reducing costs as it pertains to use of computational resources. Heimel [0028].
Claim 18 corresponds to claim 6 and is rejected accordingly
Claims 7, 8 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Sudipto R. Chowdhuri (United States Patent Publication Number 20060080285), hereinafter Chowdhuri in view of Faunce et al. (United States Patent Publication Number 2010/0169381), hereinafter referred to as Faunce, in view of Cheng et al., (United States Patent Publication Number 20150261820) hereinafter Cheng in view of Bear et al., (United States Patent Publication Number 20120317094) hereinafter Bear and in further view of Plattner et al., (United States Patent Publication Number 20150120698) hereinafter Plattner
Regarding claim 7 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 1,
Chowdhuri does not fully disclose further comprising pruning the TableScan Semi Join operator from the query execution plan without evaluating the one or more predicates of the predicate tree.
Plattner teaches pruning the TableScan Semi Join operator (pruning all subjoins (or pair) of the form Rj tx1 Sk (Rj and Sk are partitions of R and S, respectively) [0109]) from the query execution plan (plan for query Q [0109]) such as “query execution plan” without evaluating (If the partition R1 is empty, the subjoins Rj w Sk, for all k E{ 1; ... m}, do not have to be computed during the execution of the query [0109]) the one or more predicates (Join predicate q(R; S) [0113]) of the predicate tree (two tables (R; S) is defined as following: The matching dependency MD=(R; S; (q1(R; S); qiR; S)), where q1 and q2 are two predicates, [0119]) NOTE predicates q1 and q2 are matched on tables R and S making that a predicate tree
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce, Cheng and Bear to incorporate the teachings of Plattner wherein pruning the TableScan Semi Join operator from the query execution plan without evaluating the one or more predicates of the predicate tree. By doing so no properties of data stored in the partitions at the time of joining (i.e., at join runtime) are retrieved and taken into account (this is also referred to as logical pruning). Plattner [0042]
Claim 19 corresponds to claim 7 and is rejected accordingly
Regarding claim 8 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 1,
Chowdhuri does not fully disclose further comprising pruning a second operator from the query execution plan when it is determined that the TableScan Semi Join operator does not produce a result
Plattner teaches further comprising pruning a second operator (pruning all subjoins (or pair) of the form Rj tx1 Sk (Rj and Sk are partitions of R and S, respectively) [0109]) from the query execution plan (plan for query Q [0109]) such as “query execution plan” when it is determined that the TableScan Semi Join operator does not produce a result (If the partition R1 is empty, the subjoins Rj w Sk, for all k E{ 1; ... m}, do not have to be computed during the execution of the query. [0109]) (hence the subjoin R1 tx1 R[AJ~s [AJS 2=0 can be dynamically pruned. [0128])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce, Cheng and Bear to incorporate the teachings of Plattner wherein pruning a second operator from the query execution plan responsive to determining that the value list is empty. By doing so join processes are speed up by avoiding unnecessary access to potentially large partitions. Plattner [0043]
Claims 12 are rejected under 35 U.S.C. 103 as being unpatentable over Sudipto R. Chowdhuri (United States Patent Publication Number 20060080285),hereinafter Chowdhuri in view of Faunce et al. (United States Patent Publication Number 2010/0169381), hereinafter referred to as Faunce in view of Cheng et al., (United States Patent Publication Number 20150261820) hereinafter Cheng, in view of Bear et al., (United States Patent Publication Number 20120317094) hereinafter Bear and in further view of Chaudhuri et al., (United States Patent Publication Number 20050222965) hereinafter Chaudhuri
Regarding claim 12 Chowdhuri in view of Faunce, Cheng and Bear teaches the computer-implemented method (Figs. 7A – B, 14 Scheduling methodology [0022], [0031]; Figs. 9A – B, 12A - B method steps [0024], [0028]) of claim 11,
Chowdhuri as modified further teaches further comprising expanding (component expansion routing [0142]) the predicate tree (predicates on a single table [0051]) into the one or more predicates (conjunctive or disjunctive predicates [0051])
Chowdhuri does not fully disclose expanding the value list in the probe pipeline.
Chaudhuri teaches expanding the value list ({Table Scan B 190, Hash
Join 192, Index Nested Loops 194, Index Seek C 196} [0089]) NOTE all these operations will expand value list in the probe pipeline in the probe pipeline (Fig. 8, B is the side of the probe pipeline [0089])
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Chowdhuri in view of Faunce, Cheng and Bear to incorporate the teachings of Ellington wherein expanding the value list in the probe pipeline. By doing so they are applicable to general SQL since the method deals with the execution plan level. Chaudhuri [0129]
Conclusion
7. The prior art made of record and not relied upon is considered pertinent to
applicant's disclosure.
Aya et al. (United States Patent Number 11403294) teaches “ FIG. 8 is a block diagram illustrating an example build phase of a hash join operation, Col 1 ln 55 - 60 “
8. Any inquiry concerning this communication or earlier communications from the
examiner should be directed to Kweku Halm whose telephone number is (469) 295-
9144. The examiner can normally be reached on 7:30AM - 5:30PM Mon - Thur. If
attempts to reach the examiner by telephone are unsuccessful, the examiner's
supervisor, Sanjiv Shah can be reached on (571) 272-4098. The fax phone
number for the organization where this application or proceeding is assigned is 571-273-
8300.
Information regarding the status of an application may be obtained from the
Patent Application Information Retrieval (PAIR) system. Status information for published
applications may be obtained from either Private PAIR or Public PAIR. Status information
for unpublished applications is available through Private PAIR only. For more
information about the PAIR system, see http://pair-direct.uspto.gov. Should you have
questions on access to the Private PAIR system, contact the Electronic Business Center
(EBC) at 866-217-9197 (toll-free).
/KWEKU WILLIAM HALM/Examiner, Art Unit 2166
/SANJIV SHAH/Supervisory Patent Examiner, Art Unit 2166