Extensibility in a database system
First Claim
1. A method comprising:
- obtaining a user query in a structured query language, the user query comprising at least one query parameter for selecting data from a content database;
parsing the user query to identify a skeletal query form of the user query in a first programming language and the at least one query parameter, wherein the skeletal query comprising at least one unresolved object and a function calling the at least one unresolved object;
generating byte code defining a plurality of functions corresponding to the user query,interpreting the byte code using the at least one query parameter, thereby returning a result of the user query satisfying the at least one query parameter,generating machine code corresponding to the user query based on the byte code,executing the machine code corresponding to the user query using the at least one query parameter if the user query is called again, thereby returning a result of the user query satisfying the at least one query parameter;
wherein the generating and executing machine code corresponding to the user query comprising;
on a first pass through the skeletal query;
binding each respective unresolved object to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object,delaying evaluation of the skeletal query until a second pass through the skeletal query;
on a second pass through the skeletal query, obtaining machine code corresponding to a compiled version of the skeletal query by;
sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the skeletal query; and
executing the machine code corresponding to the compiled version of the skeletal query, thereby performing at least one operation on the data of the content database.
7 Assignments
0 Petitions
Accused Products
Abstract
A method includes receiving a user-defined extension configured to operate on data from a content database and comprising code expressed in a first programming language, the user-defined extension comprising at least one unresolved object and a function calling the at least one unresolved object. On a first pass through the user-defined extension code, each respective unresolved object is bound to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object, and delaying evaluation of the user-defined extension code until a second pass through the user-defined extension code. On the second pass, machine code corresponding to a compiled version of the user-defined extension is obtained by sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the function. A related system and non-transitory computer-readable medium are also provided.
-
Citations
31 Claims
-
1. A method comprising:
-
obtaining a user query in a structured query language, the user query comprising at least one query parameter for selecting data from a content database; parsing the user query to identify a skeletal query form of the user query in a first programming language and the at least one query parameter, wherein the skeletal query comprising at least one unresolved object and a function calling the at least one unresolved object; generating byte code defining a plurality of functions corresponding to the user query, interpreting the byte code using the at least one query parameter, thereby returning a result of the user query satisfying the at least one query parameter, generating machine code corresponding to the user query based on the byte code, executing the machine code corresponding to the user query using the at least one query parameter if the user query is called again, thereby returning a result of the user query satisfying the at least one query parameter; wherein the generating and executing machine code corresponding to the user query comprising; on a first pass through the skeletal query; binding each respective unresolved object to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object, delaying evaluation of the skeletal query until a second pass through the skeletal query; on a second pass through the skeletal query, obtaining machine code corresponding to a compiled version of the skeletal query by; sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the skeletal query; and executing the machine code corresponding to the compiled version of the skeletal query, thereby performing at least one operation on the data of the content database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer readable medium comprising instructions which, when executed by a processing system, cause the processing system to:
-
obtain a user query in a structured query language, the user query comprising at least one query parameter for selecting data from a content database; parse the user query to identify a skeletal query form of the user query in a first programming language and the at least one query parameter, wherein the skeletal query comprising at least one unresolved object and a function calling the at least one unresolved object; generate byte code defining a plurality of functions corresponding to the user query, interpret the byte code using the at least one query parameter, thereby returning a result of the user query satisfying the at least one query parameter, generate machine code corresponding to the user query based on the byte code, execute the machine code corresponding to the user query using the at least one query parameter if the user query is called again, thereby returning a result of the user query satisfying the at least one query parameter; wherein generate and execute machine code corresponding to the user query comprises; on a first pass through the skeletal query; bind each respective unresolved object to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object, delay evaluation of the skeletal query until a second pass through the skeletal query; on a second pass through the skeletal query, obtain machine code corresponding to a compiled version of the skeletal query by; sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the skeletal query; and execute the machine code corresponding to the compiled version of the skeletal query, thereby performing at least one operation on the data of the content database. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A system, comprising:
-
a processing system configured to; obtain a user query in a structured query language, the user query comprising at least one query parameter for selecting data from a content database; parse the user query to identify a skeletal query form of the user query in a first programming language and the at least one query parameter, wherein the skeletal query comprising at least one unresolved object and a function calling the at least one unresolved object; generate byte code defining a plurality of functions corresponding to the user query, interpret the byte code using the at least one query parameter, thereby returning a result of the user query satisfying the at least one query parameter, generate machine code corresponding to the user query based on the byte code, execute the machine code corresponding to the user query using the at least one query parameter if the user query is called again, thereby returning a result of the user query satisfying the at least one query parameter; wherein the generate and execute machine code corresponding to the user query comprising; on a first pass through the skeletal query; bind each respective unresolved object to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object, delay evaluation of the skeletal query until a second pass through the skeletal query; on a second pass through the skeletal query; obtain machine code corresponding to a compiled version of the skeletal query by; sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the skeletal query; and execute the machine code corresponding to the compiled version of the skeletal query, thereby performing at least one operation on the data of the content database. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31)
-
Specification