15. A method comprising: receiving a query by a computing device of a query processing system; determining, by the computing device, a set of query processing operations provided by a plurality of providers from an operation support table, wherein each of the providers supports a unique subset of the query processing operations, wherein the plurality of providers includes one or more of query transformation providers for performing query transformation during a query planning phase of query execution, and query planning providers for providing access to external data sources by translating the query portion to a query language of the underlying data source; decomposing, by the computing device, the query into a plurality of different portions according to the query processing operations supported by the providers, wherein at least two of the different portions are mutually exclusive; evaluating each of the different portions of the query with a corresponding one of the providers to produce a plurality of resultant query portions; combining, by the computing device, the resultant query portions to produce a result set for the query; and returning, by the computing device, the result set.
15. A method comprising: receiving a query by a computing device of a query processing system; determining, by the computing device, a set of query processing operations provided by a plurality of providers from an operation support table, wherein each of the providers supports a unique subset of the query processing operations, wherein the plurality of providers includes one or more of query transformation providers for performing query transformation during a query planning phase of query execution, and query planning providers for providing access to external data sources by translating the query portion to a query language of the underlying data source; decomposing, by the computing device, the query into a plurality of different portions according to the query processing operations supported by the providers, wherein at least two of the different portions are mutually exclusive; evaluating each of the different portions of the query with a corresponding one of the providers to produce a plurality of resultant query portions; combining, by the computing device, the resultant query portions to produce a result set for the query; and returning, by the computing device, the result set. 16. The method of claim 15 , wherein decomposing comprises distributing the different portions of the query to nodes of a tree, and wherein the nodes of the tree each comprise one of the different portions of the query.