Systems and methods for a database engine in-process data provider
First Claim
Patent Images
1. A computer-implemented method, comprising:
- running, on a computer system, a database management system, the database management system configured to process queries generated in a native query language for the database management system;
running, on the computer system, a runtime environment configured to manage execution of intermediate language code;
establishing a connection to a client, the client associated with a set of database access privileges;
receiving, from the client, a query that invokes intermediate language code;
compiling by the runtime environment during a runtime of the database management system, the intermediate language code into an expression encoded in the native query language;
generating a context object including information comprising the set of database access privileges, a connection context of the client, a command context of the client, a transaction context of the client, a pipe context of the client, and a trigger context of the client;
exposing the context object to the database management system through a utilization of an in-process provider, the in-process provider keeps track of data obtained from the database management system that is referenced from the runtime environment and prevents access of the database management data outside a runtime environment execution frame;
executing the expression encoded in the native query language based on the context object; and
storing information indicative of a result of the query in memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of the present invention enable functions, procedures, and triggers to be written in any of the .NET languages and executed by the RDBMS. User code can access data from the local or other SQL servers using the SQL Programming Model and both the SqlServer or SqlClient implementations respectively. Moreover, to improve upon the previous extensibility mechanism, a set of APIs (commonly known as “the in-process provider” or “inproc provider”) is utilized to provide efficient and easy to use data access while running inproc, a data access API that is an implementation of the ADO.net programming model.
-
Citations
17 Claims
-
1. A computer-implemented method, comprising:
-
running, on a computer system, a database management system, the database management system configured to process queries generated in a native query language for the database management system; running, on the computer system, a runtime environment configured to manage execution of intermediate language code; establishing a connection to a client, the client associated with a set of database access privileges; receiving, from the client, a query that invokes intermediate language code; compiling by the runtime environment during a runtime of the database management system, the intermediate language code into an expression encoded in the native query language; generating a context object including information comprising the set of database access privileges, a connection context of the client, a command context of the client, a transaction context of the client, a pipe context of the client, and a trigger context of the client; exposing the context object to the database management system through a utilization of an in-process provider, the in-process provider keeps track of data obtained from the database management system that is referenced from the runtime environment and prevents access of the database management data outside a runtime environment execution frame; executing the expression encoded in the native query language based on the context object; and storing information indicative of a result of the query in memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for executing application code in a database management system (DBMS), the system comprising:
-
a processor; and a memory coupled to the processor, the memory including instructions stored therein that upon execution cause the processor to; run a database management system, the database management system configured to process queries generated in a native query language; run a runtime environment configured to manage execution of intermediate language code; establishing a connection to a client, the client associated with a set of database access privileges; receive a query that invokes intermediate language code from the client; compile by the runtime environment, the intermediate language code into an expression encoded in the native query language; generate a context object including information comprising the set of database access privileges, a connection context of the client, a command context of the client, a transaction context of the client, a pipe context of the client, and a trigger context of the client; expose the context object to the database management system through a utilization of an in-process provider, the in-process provider keeps track of data obtained from the database management system that is referenced from the runtime environment and prevents access of the database management data outside a runtime environment execution frame; execute the expression encoded in the native query language based on the context object. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A computer-readable storage medium comprising computer-readable instructions stored thereon that upon execution by a processor of a computer system cause the computer system to:
-
run a database management system, the database management system configured to process queries generated in a native query language; run a runtime environment configured to manage execution of intermediate language code; establish a connection to a client, the client associated with a set of database access privileges; receive a query that invokes intermediate language code from the client; compile by the runtime environment, the intermediate language code into an expression encoded in the native query language; generate a context object including the set of database access privileges, a connection context of a client, a command context of the client, a transaction context of the client, a pipe context of the client, and a trigger context of the client; expose the context object to the database management system through a utilization of an in-process provider, the in-process provider keeps track of data obtained from the database management system that is referenced from the runtime environment and prevents access of the database management data outside a runtime environment execution frame; and execute the expression encoded in the native query language based on the context object. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification