Ex Parte Yoaz et alDownload PDFPatent Trial and Appeal BoardSep 28, 201611781139 (P.T.A.B. Sep. 28, 2016) Copy Citation UNITED STA TES p A TENT AND TRADEMARK OFFICE APPLICATION NO. FILING DATE FIRST NAMED INVENTOR 111781,139 0712012007 Adie! Yoaz 42425 7590 09/30/2016 HICKMAN PALERMO BECKER BINGHAM/ORACLE 1 Almaden Boulevard Floor 12 SAN JOSE, CA 95113 UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www .uspto.gov ATTORNEY DOCKET NO. CONFIRMATION NO. 50277-3290 5329 EXAMINER WILLIS, AMANDA LYNN ART UNIT PAPER NUMBER 2158 NOTIFICATION DATE DELIVERY MODE 09/30/2016 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address( es): usdocket@h35g.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte ADIEL YOAZ, SRIRAM KRISHNAMURTHY, and QIN YU Appeal2014-009960 Application 11/781,139 1 Technology Center 2100 Before CAROLYN D. THOMAS, SHARON PENICK, and JOHN R. KENNY, Administrative Patent Judges. PENICK, Administrative Patent Judge. DECISION ON APPEAL This is an appeal under 35 U.S.C. § 134(a) from the Examiner's Final Rejection of claims 1-7, 9, 10, and 21-29. Claims 8 and 11-20 are cancelled. (Appeal Br. 20-21.) We have jurisdiction under 35 U.S.C. § 6(b )(1 ). We affirm. Invention Appellants' invention relates to compiling and computing database statements. (Spec. Abstract.) Specifically, the invention relates to table 1 Appellants identify Oracle Corporation as the real party in interest. (Appeal Br. 1.) Appeal2014-009960 Application 11/781,139 functions, which, when executed, internally execute another query and return the result. According to the invention, during compilation, the original query is rewritten by replacing the table function with the query it would execute. In this way, a query containing a table function can be optimized with respect to both the original query containing the table function and the internally executed query that would otherwise be executed by the table function. (Id. i-fi-f 14--15, 23.) Representative Claim Claim 1 is representative: 1. A computer-implemented method, comprising steps of: a database server receiving one or more requests to register a user-defined table function and a replacement implementation, said replacement implementation specifying instructions for generating a replacement statement with which to replace said user-defined table function in queries received by said database server; in response to receiving said one or more requests, said database server generating metadata that defines said user-defined table function and that defines said replacement implementation as specifying said instructions for generating a replacement statement with which to replace said user-defined table function in queries received by said database server; compiling a database statement that contains said user- defined table function; wherein said compiling said database statement includes: before generating an execution plan for said database statement, said database server rewriting said database statement to generate a rewritten database statement, wherein said rewriting said database statement comprises: 2 Appeal2014-009960 Application 11/781,139 to generate a particular replacement database statement, executing replacement implementation code that is based on said replacement implementation, and replacing said user-defined table function with said particular replacement database statement, wherein said particular replacement database statement contains, according to a database query language, a plurality of clauses; forming one or more execution plans for computing said rewritten database statement; wherein the method is performed by one or more computers. Rejections The Examiner rejects claims 1---6 and 21-26 under 35 U.S.C. § 103(a) as unpatentable over Barsness et al. (US 2005/0154709 Al; July 14, 2005) and Mattos et al. (US 5,765,147; June 9, 1998). (Final Action 2-20.) The Examiner rejects claims 7, 9, 10, and 27-29 under 35 U.S.C. § 103(a) as unpatentable over Barsness, Mattos, and Lane et al. (Oracle Database Data Warehousing Guide 2005 lOg Release 2, pp. 1-1, 17-2, 25- 12; Dec. 2005). (Final Action 20-22.) Issues A: Did the Examiner err in finding that the combination of Barsness and Mattos teaches or suggests executing replacement implementation code based on a replacement implementation to generate a replacement database statement and replacing a user-defined table function with the replacement database statement, as recited in claim 1? 3 Appeal2014-009960 Application 11/781,139 B: Did the Examiner err in finding that the combination of Barsness and Mattos teaches or suggests that replacement implementation code is executed when a database statement is compiled in order to generate a replacement statement with which to replace a user-defined table function in a query, as recited in claim 1? ANALYSIS Issue A: "executing replacement implementation code" Claim 1 includes the limitation that replacement implementation code, based on a replacement implementation, be executed to generate a particular replacement database statement, which is used to replace a user-defined table function. The claim also includes the limitation that the replacement implementation and user-defined table function are registered with the database server. Appellants argue that Barsness' software instructions used to perform the replacement of a user-defined function in a query are not received by the database server when the database server receives the request to register a user-defined table function. (Appeal Br. 11.) Rather, the software instructions are part of the provided apparatus. (Appeal Br. 11.) Additionally, Appellants argue that the software instructions which replace the user-defined function with the replacement database statement in Barsness are not based on any replacement implementation, and do not generate a particular replacement database statement with which the user- defined table function is replaced. (Appeal Br. 12; Reply Br. 2-3.) The Examiner finds that Barsness teaches or suggests this limitation in its teachings of a backup user-defined function associated with a user- defined function and the code, which performs the replacement. (Final 4 Appeal2014-009960 Application 11/781,139 Action 2--4, 23-24; Answer 23-24.) The Examiner further finds, "[t]he language of the claim puts no limitation of where the 'replacement implementation code' is obtained, merely that it is executed based on the user registered replacement implementation." (Answer 24.) Thus, the Examiner finds that a registration of a backup user-defined table function which can be used to replace a user-defined table function is taught or suggested in Barsness, and that the Barsness system includes computer code which performs the replacement teaches or suggests the "replacement implementation code." Appellants' arguments do not convince us of error in these findings by the Examiner. As the Examiner notes, Barsness provides for the registration of a backup user-defined table function, and the use of that backup when a user-defined table function is to be replaced. (Barsness i-fi-18, 11, 40-42, 48.) While we agree with Appellants (Appeal Br. 11) that Barsness does not specify that the registration of a backup by the user in Barsness occurs when a request to register a user-defined table function is received by the database server, we find that the broadest reasonable interpretation of the limitation does not put any limitations on when the actual registration should occur and the recitation "receiving one or more requests to register a user-defined table function and a replacement implementation," in light of the specification, also does not require that the database server receive information about a user-defined table function and the replacement implementation at the same time. Thus, Barsness teaches a request that a replacement implementation ("backup user-defined table function") is registered for a user-defined table function. (Barsness i1 41.) 5 Appeal2014-009960 Application 11/781,139 Additionally, we agree with the Examiner that claim 1 does not specify how the replacement implementation code is obtained, and that Barsness teaches or suggests the claimed replacement implementation code is the code which generates a replacement database statement (substituting the backup user-defined table function). (Answer 24.) Barsness teaches that when a backup function is to be used, a query controller modifies the query to remove the portion of the query that uses the current user-defined function with the backup user-defined function specified in the backup field 225 for the user-defined function 220. (Barsness i-fi-141, 50.) Thus, Barsness teaches or suggests code which, in combination with the information in the backup fields, is executed to generate a replacement database statement. We agree with the Examiner (Answer 24) that this teaches or suggests code, based on the replacement implementation (backup user-defined function) which generates a replacement database statement. Issue B: "compiling a database statement includes ... executing replacement implementation code" Claim 1 describes the execution of replacement implementation code occurring as part of the compilation of a database statement. Appellants argue that the combination of Barsness and Mattos do not teach the use of such replacement implementation code to generate a replacement statement at compile time. (Appeal Br. 12-13; Reply Br. 2-3.) The Examiner finds that Barsness teaches checking availability of a user-defined function and its replacement if unavailable, which, as discussed supra, the Examiner analogizes to the execution of replacement implementation code. The Examiner agrees with the Appellants (Appeal Br. 6 Appeal2014-009960 Application 11/781,139 13) that "Barsness does not specify when this checking of availability and replacement is performed." (Answer 25.) However, the Examiner finds that this is taught by Mattos. In Mattos, queries, including those relating to data types not supported by the database management system, are supported. (Mattos, Abstract.) Such queries are automatically rewritten or optimized to take advantage of the indexing techniques. (Id.) User-defined functions are defined and can be used in queries. (Id. 3:27-34.) At compile time, a check (the INDEX_EXISTS UDP function) is performed to determine ifthe index used in a UDP exists, and if so a query rewrite at compile time will occur. (Id. 8:54--59; Fig. 3.) This occurs in order to allow rewriting and optimization of the query including user-defined functions. (Id. Abstract, 1 :64--65, 8:54--59, 14:46-51.) Appellants argue that Mattos does not teach executing replacement implementation code when a database statement is compiled. (Appeal Br. 14; Reply Br. 3.) Appellants argue that Mattos' INDEX_EXISTS UDP is a check to see if a UDP is available but does not perform the replacement. Appellants' focus on INDEX_EXISTS UDP does not convince us of error. This function is used as part of a process in Mattos which leads to the generation of replacement database statements for a user-defined function. As discussed above, in Mattos the rewriting of a query occurs as part of a compiling process and is performed to optimize queries. Thus, Mattos, as a database management system including RDBMS software (Mattos 1 :30), includes code which performs the query rewriting as in the disputed limitation. 7 Appeal2014-009960 Application 11/781,139 Moreover, to the extent that Mattos is used by the Examiner to show that rewriting of queries to include particular replacement database statements (as the Examiner finds in Barsness) occurs at compile time, we agree that this teaching is clearly present in Barsness. The Appellants' Specification notes that "[ c ]ompiling an SQL statement, as the term is used herein, refers to the process of determining and optimizing operations or steps, resources, and/or data structures that are required to evaluate the SQL statement." (Spec. i-f 7.) Mattos shows that the rewriting taught or suggested by Barsness would be performed at compile time (Mattos 8:54--59) and used to optimize queries (Mattos Abstract, 7:43-8:5.) Thus, the combination of Barsness and Mattos shows that the rewriting of a database statement as taught by Barsness would be performed at compile time, as in the disputed limitation. Appellants further argue that no motivation to combine has been provided by the Examiner. (Appeal Br. 15; Reply Br. 6-7.) Since we agree that such motivation has been shown (see Final Action 5) and disagree with the Appellants' contentions regarding the teachings of Barsness and Mattos which underpin Appellants' arguments, we are not persuaded of error in the Examiner's rejection on this ground. Accordingly, we are not persuaded the Examiner erred in finding the combination of Barsness and Mattos teaches or suggests the argued limitations as recited in independent claim 1 and commensurately recited in independent claims 6, 21, and 26. Claims 2-5 and 22-25 were not separately argued and thus, these claims fall with their respective independent claims. We additionally find no error in the rejections of claims 7, 9, 10, and 27-29, rejected over the combination of Barsness, Mattos, and 8 Appeal2014-009960 Application 11/781,139 Lane and argued on the same grounds. Therefore, we sustain the rejections of claims 1-7, 9, 10, and 21-29 under 35 U.S.C. § 103(a) for obviousness. DECISION We affirm the Examiner's decision rejecting claims 1-7, 9, 10, and 21-29 under 35 U.S.C. § 103(a). Pursuant to 37 C.F.R. § 1.136(a)(l )(iv), no time period for taking any subsequent action in connection with this appeal may be extended. AFFIRMED 9 Copy with citationCopy as parenthetical citation