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 .
Claim Status
Claims 1-19, and 21 are pending.
Continued Examination Under 37 CFR 1.114
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 04/10/2026 has been entered.
Response to Arguments
Applicant’s arguments with respect to claims 1-19, and 21 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 103
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.
Claim 1 is rejected under 35 U.S.C. 103 as being unpatentable over Pine in view of W3schools
Regarding claim 1, Pine teaches a computer-executed method comprising: compiling, by a database management system, a query, wherein: the query comprises an outer query block containing a view with a union-all operator that forms a union-all view within a FROM clause of the outer query block (Page 1, UNION ALL); the union-all operator combines result sets of two or more branches (Page 1, UNION ALL); the outer query block comprises an outer query statement referencing one or more columns of the union-all view and a group-by statement that groups results of the outer query statement (Page 2, You could apply the group by and order by after the union all); each branch in the two or more branches projects one or more columns (Page 2, FROM [TABLE_ONE]).
Pine does not appear to explicitly teach compiling the query comprises performing a group-by pushdown operation on the query to form a modified query; and performing the group-by pushdown operation on the query comprises: modifying at least a given branch of the two or more branches to include a respective group-by clause that groups results of the given branch by the one or more columns of the given branch, wherein modifying the at least a given branch includes not modifying another branch of said two or more branches to include a group-by clause in response to determining said another branch is not valid for the group-by pushdown operation.
In analogous art, W3 Schools teaches compiling the query comprises performing a group-by pushdown operation on the query to form a modified query (GROUP BY column1, column3); and performing the group-by pushdown operation on the query comprises: modifying at least a given branch of the two or more branches to include a respective group-by clause that groups results of the given branch by the one or more columns of the given branch, wherein modifying the at least a given branch includes not modifying another branch of said two or more branches to include a group-by clause in response to determining said another branch is not valid for the group-by pushdown operation (The GROUP BY statement is used to group rows that have the same values into summary rows, like "Find the number of customers in each country"); the outer query statement includes an aggregate function (The GROUP BY statement is almost always used in conjunction with aggregate functions, like COUNT(), MAX(), MIN(), SUM(), AVG(), to perform calculations on each group); modifying the given branch to include a branch aggregate function (The GROUP BY statement is almost always used in conjunction with aggregate functions, like COUNT(), MAX(), MIN(), SUM(), AVG(), to perform calculations on each group); modifying said another branch of the two or more branches that is not considered valid for the group-by pushdown operation to include an item corresponding to the branch aggregate function(GROUP BY column1, column3, ORDER BY column_name;); and modifying the aggregate function of the outer query statement to reference the branch aggregate function and the item(GROUP BY column1, column3, ORDER BY column_name;); and executing, by the database management system, the modified query(Below is a selection from the "Orders" table in the Northwind sample database). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine to include the teaching of W3 Schools. One of ordinary skill in the art would be motivated to implement this modification in order to organize data into groups, as taught by W3 Schools (Find the number of customers in each country).
Claims 2-4, 9, 12 are rejected under 35 U.S.C. 103 as being unpatentable over Pine in view of W3schools further in view of Li et al (US 5418950 A) hereafter Li
Regarding claim 2, Pine in view of W3schools teaching the method of claim 1, as shown above. Pine in view of W3schools does not appear to explicitly teach wherein compiling the query further comprises: responsive to determining that another branch of the two or more branches contains a single table, has a unique column, and the unique column is a non-aggregation column, determining that the another branch is not considered valid for the group- by pushdown operation.
In analogous art, Li teaches wherein compiling the query further comprises: responsive to determining that another branch of the two or more branches contains a single table, has a unique column, and the unique column is a non-aggregation column, determining that the another branch is not considered valid for the group- by pushdown operation (Li, Para 47, This further step is performed after the qualified rows from referenced tables and views have been selected. The GROUP-BY operation basically rearranges the qualified rows based on the specified GROUP-BY columns). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools to include the teaching of Li. One of ordinary skill in the art would be motivated to implement this modification in order to provide a database interface, as taught by Li (Para 20, it is a primary object of the present invention to provide a user with a database interface matching a user's mental model for defining SQL SELECT statements).
Regarding claim 3, Pine in view of W3schools in view of Li teaches the method of claim 2, wherein the one or more criteria comprise at least one branch of the two or more branches being a branch that is valid for the group-by pushdown operation (Li, Para 47, This further step is performed after the qualified rows from referenced tables and views have been selected. The GROUP-BY operation basically rearranges the qualified rows based on the specified GROUP-BY columns). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools to include the teaching of Li. One of ordinary skill in the art would be motivated to implement this modification in order to provide a database interface (Para 20, it is a primary object of the present invention to provide a user with a database interface matching a user's mental model for defining SQL SELECT statements).
Regarding claim 4, Pine in view of W3schools teaches the method of claim 1, as shown above. Pine in view of W3schools does not appear to explicitly teach wherein: the outer query statement includes an aggregate function; and performing the group-by pushdown operation on the query further comprises performing a decomposition operation on the aggregate function of the outer query statement; and performing the decomposition operation comprises: modifying the given branch to include a branch aggregate function; assigning an alias to the branch aggregate function; and modifying the aggregate function of the outer query statement, wherein modifying the aggregate function of the outer query statement comprises modifying the aggregate function of the outer query statement to reference the branch aggregate function by the alias as an argument.
In analogous art, Li wherein: the outer query statement includes an aggregate function; and performing the group-by pushdown operation on the query further comprises performing a decomposition operation on the aggregate function of the outer query statement; and performing the decomposition operation comprises: modifying the given branch to include a branch aggregate function; assigning an alias to the branch aggregate function; and modifying the aggregate function of the outer query statement, wherein modifying the aggregate function of the outer query statement comprises modifying the aggregate function of the outer query statement to reference the branch aggregate function by the alias as an argument (Li, Para 55, In the user interface, each entry of a table list includes a field for the table name and a field for the corresponding alias. If it is a base table or view entry, the alias field is an editable field displaying the alias name. If it is a logical table, the alias field is not editable and displays no text in an inactive or "greyed" shade). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools to include the teaching of Li. One of ordinary skill in the art would be motivated to implement this modification in order to improve database systems, as taught by Li (Para 2, This invention generally relates to improvements in computer based filing systems and more particularly to a system and method for accessing information in a database application).
Regarding claim 9, Pine in view of W3schools in view of Li teaches the method of claim 4, wherein performing the decomposition operation further comprises: modifying said another branch of the two or more branches that is not considered valid for the group-by pushdown operation to include an item corresponding to the branch aggregate function; and assigning the alias to the item (Li, Para 55, In the user interface, each entry of a table list includes a field for the table name and a field for the corresponding alias. If it is a base table or view entry, the alias field is an editable field displaying the alias name. If it is a logical table, the alias field is not editable and displays no text in an inactive or "greyed" shade). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools to include the teaching of Li. One of ordinary skill in the art would be motivated to implement this modification in order to improve database systems, as taught by Li (Para 2, This invention generally relates to improvements in computer based filing systems and more particularly to a system and method for accessing information in a database application).
Regarding claim 12, Pine in view of W3schools in view of Li teaches the method of claim 4, wherein: the union-all view is a first union-all view; the branch aggregate function is a first branch aggregate function; the outer query block further comprises a second view with a second union-all operator that forms a second union-all view; compiling the query further comprises performing a second group-by pushdown operation on at least one branch of the second union-all operator; performing the second group-by pushdown operation comprises: modifying a particular branch of the second union-all operator to include a second branch aggregate function; and modifying the aggregate function of the outer query statement comprises modifying the aggregate function of the outer query statement to reference the first branch aggregate function of the first union-all view and the second branch aggregate function of the second union-all view by the alias (Li, Para 46, The FROM clause in a SQL SELECT statement specifies the database tables and views to which referenced columns belong. The referenced columns include columns specified in the other clauses of the SELECT statement. There are occasions where the same table must be referenced more than once in the FROM clause. In those cases, each reference should be assigned with its own alias for unique identification and every referenced column should have the appropriate alias for correct identification. When there is no reference column in any other clause, then a user can select table names from a table list). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools to include the teaching of Li. One of ordinary skill in the art would be motivated to implement this modification in order to improve database systems, as taught by Li (Para 2, This invention generally relates to improvements in computer based filing systems and more particularly to a system and method for accessing information in a database application).
Claims 5-8, 10-11, 13-19, 21 are rejected under 35 U.S.C. 103 as being unpatentable over Pine in view of W3schools in view of Li further in view of Chen et al (US 20030055814 A1) hereafter Chen
Regarding claim 5, Pine in view of W3schools in view of Li teaches the method of claim 4, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein: the aggregate function of the outer query statement is a count function; modifying the aggregate function of the outer query statement comprises replacing the count function with a sum function; and the branch aggregate function is a branch count function.
In analogous art, Chen teaches wherein: the aggregate function of the outer query statement is a count function; modifying the aggregate function of the outer query statement comprises replacing the count function with a sum function; and the branch aggregate function is a branch count function (Chen, Para 0039, The query engine 20 separately determines (at block 122) the COUNTs of T1 and T2 and SUMs on column C of T1 and T2). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 6, Pine in view of W3schools in view of Li teaches the method of claim 4, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein modifying the aggregate function of the outer query statement comprises: replacing the aggregate function of the outer query statement with a first aggregate function in response to a determination that the outer query block involves a first type of join operation; and replacing the aggregate function of the outer query statement with a second aggregate function that is different from the first aggregate function in response to a determination that the outer query block involves a second type of join operation.
In analogous art, Chen teaches wherein modifying the aggregate function of the outer query statement comprises: replacing the aggregate function of the outer query statement with a first aggregate function in response to a determination that the outer query block involves a first type of join operation; and replacing the aggregate function of the outer query statement with a second aggregate function that is different from the first aggregate function in response to a determination that the outer query block involves a second type of join operation (Chen, Para 25, It is known that there are two ways to implement the JOIN operator, namely, either at the map phase or at the reduce phase. The implementation at the reduce phase may be more general and applicable to all scenarios). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 7, Pine in view of W3schools in view of Li teaches the method of claim 6, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein the first type of join operation is a join operation where the union-all view is inner joined or on a left of a left outer join and the second type of join operation is a join operation where the union-all view is on a right of a left outer join.
In analogous art, Chen teaches wherein the first type of join operation is a join operation where the union-all view is inner joined or on a left of a left outer join and the second type of join operation is a join operation where the union-all view is on a right of a left outer join (Chen, Para 25, For example, T1 JOIN (T2 UNION ALL T3) becomes (T1 JOIN T2) UNION ALL (T1 JOIN T3)). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 8, Pine in view of W3schools in view of Li teaches the method of claim 6, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein modifying the aggregate function of the outer query statement comprises replacing the aggregate function of the outer query statement with the first aggregate function in response to a determination that the outer query block does not involve a join with the union-all view.
In analogous art, Chen teaches wherein modifying the aggregate function of the outer query statement comprises replacing the aggregate function of the outer query statement with the first aggregate function in response to a determination that the outer query block does not involve a join with the union-all view (Chen, Para 0026, The projection (SELECT clause in SQL queries) applied to the result table of a UNION ALL operator can be performed on each subselect of the UNION ALL before applying the UNION ALL operator). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 10, Pine in view of W3schools in view of Li teaches the method of claim 9, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein the item comprises one of: a column specified by the another branch, a function that returns one if the column specified by the another branch is not null and returns a value of zero if the column specified by the another branch is null, or a value of one. In analogous art, Chen teaches wherein the item comprises one of: a column specified by the another branch, a function that returns one if the column specified by the another branch is not null and returns a value of zero if the column specified by the another branch is null, or a value of one (Chen, Para 34, If a specific column referred to in the query does not exist in the view, treat it as a NULL value. To have meaningful query semantics, all group by columns are required to exist in each of the views in the FROM clause). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 11, Pine in view of W3schools in view of Li teaches the method of claim 4, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein: the aggregate function of the outer query statement references an item of the given branch; and modifying the given branch to include the branch aggregate function comprises replacing the item of the given branch with the branch aggregate function. In analogous art, Chen teaches wherein: the aggregate function of the outer query statement references an item of the given branch; and modifying the given branch to include the branch aggregate function comprises replacing the item of the given branch with the branch aggregate function (Chen, Para 143, Third, the modified distinct clause removes duplicates per user. Hence the nested query according to an embodiment can be more efficiently processed than by standard methods). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 13, Pine in view of W3schools in view of Li teaches the method of claim 4, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein: the aggregate function of the outer query statement is a sum function having an argument that comes from the union-all view; and the branch aggregate function comprises a sum of a column of the one or more columns.
In analogous art, Chen teaches wherein: the aggregate function of the outer query statement is a sum function having an argument that comes from the union-all view; and the branch aggregate function comprises a sum of a column of the one or more columns (Chen, Para 0037, FIG. 3a illustrates logic implemented by the query engine 20 to perform a SUM operation on column C of the UNION ALL of input tables T1 and T2, which are subselects of base tables, beginning at block 80. The query engine 20 distributes the sums to separately sum (at block 82) the values in column C of tables T1 and T2 and then return (at block 84) the sum of these two intermediate sums of T1 and T2 on column C). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 14, Pine in view of W3schools in view of Li teaches the method of claim 4, as shown above. Pine in view of W3schools in view of Li does not appear to explicitly teach wherein: the aggregate function of the outer query statement is a sum function having an argument that comes from a table or view for which a group-by pushdown has not been performed; and the branch aggregate function comprises a count of a column of the one or more columns. In analogous art, Chen teaches wherein: the aggregate function of the outer query statement is a sum function having an argument that comes from a table or view for which a group-by pushdown has not been performed; and the branch aggregate function comprises a count of a column of the one or more columns (Chen, Para 0035, For aggregation (column functions with group-by) applied to the result of a UNION ALL operator, a set of new column functions is provided to apply the specified column functions with the group-by (new aggregation) to each input table of the UNION ALL ). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 15, Pine in view of W3schools in view of Li teaches the method of claim 4, wherein: the aggregate function of the outer query statement is an average function; and performing the group-by pushdown operation on the query further comprises replacing the average function with a sum function divided by a count function prior to performing the decomposition operation (Chen, Para 0039, FIG. 4a illustrates logic implemented by the query engine 20 to perform an average (AVG) operation on column C of the UNION ALL of tables T1 and T2, beginning at block 120. The query engine 20 separately determines (at block 122) the COUNTs of T1 and T2 and SUMs on column C of T1 and T2. The query engine 20 then adds (at block 124) the SUMs of T1 and T2 on column C together and divides by the sum of the COUNTs of T1 and T2). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 16, Pine in view of W3schools further in view of Li teaches the method of claim 1, as shown above. Pine in view of W3schools further in view of Li does not appear to explicitly teach wherein the outer query block further comprises a join or a filter predicate. In analogous art, Chen teaches wherein the outer query block further comprises a join or a filter predicate (Chen, Para 0025, where the join predicate between T1 and the result table of T2 UNION ALL T3 is transformed to the join predicates between T1 and T2 and between T1 and T3). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 17, Pine in view of W3schools further in view of Li teaches the method of claim 1, as shown above. Pine in view of W3schools further in view of Li does not appear to explicitly teach wherein the given branch further includes a join or a filter predicate.
In analogous art, Chen teaches wherein the given branch further includes a join or a filter predicate (Chen, Para 0025, where the join predicate between T1 and the result table of T2 UNION ALL T3 is transformed to the join predicates between T1 and T2 and between T1 and T3). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 18, Pine in view of W3schools further in view of Li teaches the method of claim 1, as shown above. Pine in view of W3schools further in view of Li does not appear to explicitly teach wherein compiling the query further comprises performing a group-by placement operation on the group-by clause of the given branch. In analogous art, Chen teaches wherein compiling the query further comprises performing a group-by placement operation on the group-by clause of the given branch (Chen, Para 0038, The summed values for each group according to column C prime in tables T1 and T2 are then added together at block 104 to return the total of the values in column C in tables T1 and T2 grouped by the values in column C prime). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Regarding claim 19, Pine in view of W3schools further in view of Li teaches the method of claim 1, as shown above. Pine in view of W3schools further in view of Li does not appear to explicitly teach wherein compiling said query includes selecting said modified query by performing a cost-based transformation, wherein said cost-based transformation compares a cost of said modified query to a cost of said query or a transformation of said query.
In analogous art, Chen teaches wherein compiling said query includes selecting said modified query by performing a cost-based transformation, wherein said cost-based transformation compares a cost of said modified query to a cost of said query or a transformation of said query (Chen, Para 0014, The described implementations provide techniques to optimize query processing when query operations are performed on tables derived from set operators). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify Pine in view of W3schools in view of Li to include the teaching of Chen. One of ordinary skill in the art would be motivated to implement this modification in order to process queries, as taught by Chen (Para 0002, The present invention relates to a method, system, and program for processing queries involving set operations).
Claim 21 is the media claim corresponding to the method claim 1, and is analyzed and rejected accordingly.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Brooks Hale whose telephone number is 571-272-0160. The examiner can normally be reached 9am to 5pm est.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
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 published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/B.T.H./Examiner, Art Unit 2166
/SANJIV SHAH/Supervisory Patent Examiner, Art Unit 2166