1. A method of processing queries, the method comprising: receiving, at a computing system, an original query from a querying client, the original query expressed in a first query language, wherein the first query language is Language Integrated Query (LINQ); automatically determining, at the computing system, whether the original query includes a clause unsupported by a second query language, wherein the second query language is Collaborative Application Markup Language (CAML); in response to determining that the original query includes a clause unsupported by the second query language, automatically separating, at the computing system, the original query into a server-side query and a client-side query, the server-side query comprising supported clauses of the original query, the client-side query comprising unsupported clauses of the original query; after separating the original query into the server-side query and the client-side query, automatically determining, at the computing system, whether the client-side query is efficient; automatically translating, at the computing system, the server-side query into a supplemental query expressed in the second query language; automatically receiving, at the computing system, a server-side result set from a database management system, the database management system managing a database, the server-side result set comprising data items in the database responsive to the supplemental query; when the computing system determines that the client-side query is efficient, automatically generating, by the computing system, a client-side result set by querying the server-side result set using the client-side query; and automatically returning, by the computing system, the client-side result set to the querying client as a result set of the original query.
1. A method of processing queries, the method comprising: receiving, at a computing system, an original query from a querying client, the original query expressed in a first query language, wherein the first query language is Language Integrated Query (LINQ); automatically determining, at the computing system, whether the original query includes a clause unsupported by a second query language, wherein the second query language is Collaborative Application Markup Language (CAML); in response to determining that the original query includes a clause unsupported by the second query language, automatically separating, at the computing system, the original query into a server-side query and a client-side query, the server-side query comprising supported clauses of the original query, the client-side query comprising unsupported clauses of the original query; after separating the original query into the server-side query and the client-side query, automatically determining, at the computing system, whether the client-side query is efficient; automatically translating, at the computing system, the server-side query into a supplemental query expressed in the second query language; automatically receiving, at the computing system, a server-side result set from a database management system, the database management system managing a database, the server-side result set comprising data items in the database responsive to the supplemental query; when the computing system determines that the client-side query is efficient, automatically generating, by the computing system, a client-side result set by querying the server-side result set using the client-side query; and automatically returning, by the computing system, the client-side result set to the querying client as a result set of the original query. 12. The method of claim 1 further comprising: automatically translating, at the computing system, the supplemental query into a second supplemental query expressed in a third query language; after translating the supplemental query into the second supplemental query, automatically sending, by the computing system, the second supplemental query to the database management system, the database management system executing the second supplemental query and returning the server-side result set.