IP Library Granted Patent US 10,229,174
Granted Patent B2
US 10,229,174 · App. 15/430,105 · Granted Mar 12, 2019

Optimizing result presentation of a database operation

Inventor: Seth John White (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F17/30554G06F17/30477
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,229,174
App. No.
15/430,105
Granted
Mar 12, 2019
Kind
B2
Abstract

Techniques for optimizing result presentation for a database query. A database query is received. The database query is performed with a clause indicating one or more offset values to be used in displaying results from the database query. The one or more offset values indicate a subset within the results from the database query to be presented. An order is imposed on the results from the database query. The subset is presented as determined by the one or more offset values.

Claims (37)

1. A method comprising:

receiving, with a database query agent provided by a hardware database server, one or more database queries;

parsing the one or more database queries to determine whether any of the one or more database queries have not been specified with an explicit total order;

inserting automatically and with the database query agent on the hardware database server, for the one or more database queries without an explicit total order, one or more query clauses to support paging of query results to generate, automatically and without user action, an improved database query, wherein the one or more clauses include at least a LIMIT clause in combination with at least an OFFSET clause in salesforce object query language (SOQL) syntax, the OFFSET clause specify a number of starting rows to skip in a query result set;

causing, with the database query agent on the hardware database server, the improved database query to be performed within a multitenant database environment with the clauses to be used in displaying results from the improved database query in a paged format on a user electronic device utilizing a stateless transfer that does not cause data to be cached in a middle tier, wherein the one or more clauses inserted by the improved database query agent indicate a subset within the results from the improved database query to be presented, wherein tenant data is arranged so that data of one tenant is kept logically separate from tenant data of other tenants;

imposing, with the database query agent on the hardware database server, an order on the results from the improved database query with the database server to ensure the query result set ordering is consistent; and

returning, with the database query agent on the hardware database server, the subset as determined by the one or more clauses inserted by the database query agent to the user electronic device.

2. The method of claim 1 wherein the one or more offset values indicate a subset of rows within the results from the database query to return.

3. The method of claim 2 wherein the one or more offset values operate to impose a limit on the number of rows to return.

4. The method of claim 1 wherein the order is based on a query shape.

5. The method of claim 1 wherein the order is based on a query size.

6. An article comprising a non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, are configurable to cause the one or more processors to:

receive, with a database query agent provided by a hardware database server, one or more database queries;

parse the one or more database queries to determine whether any of the one or more database queries have not been specified with an explicit total order;

insert automatically and with the database query agent on the hardware database server, for the one or more database queries without an explicit total order, one or more query clauses to support paging of query results to generate, automatically and without user action, an improved database query, wherein the one or more clauses include at least a LIMIT clause in combination with at least an OFFSET clause in salesforce object query language (SOQL) syntax, the OFFSET clause specify a number of starting rows to skip in a query result set;

cause, with the database query agent on the hardware database server, the improved database query to be performed within a multitenant database environment with the clauses to be used in displaying results from the improved database query in a paged format on a user electronic device utilizing a stateless transfer that does not cause data to be cached in a middle tier, wherein the one or more clauses inserted by the improved database query agent indicate a subset within the results from the improved database query to be presented, wherein tenant data is arranged so that data of one tenant is kept logically separate from tenant data of other tenants;

impose, with the database query agent on the hardware database server, an order on the results from the improved database query with the database server to ensure the query result set ordering is consistent; and

return, with the database query agent on the hardware database server, the subset as determined by the one or more clauses inserted by the database query agent to the user electronic device.

7. The article of claim 6 wherein the one or more offset values indicate a subset of rows within the results from the database query to return.

8. The article of claim 7 wherein the one or more offset values operate to impose a limit on the number of rows to return.

9. The article of claim 6 wherein the order is based on a query shape.

10. The article of claim 6 wherein the order is based on a query size.

11. An apparatus comprising:

means for receiving, with a database query agent provided by a hardware database server, one or more database queries;

means for parsing the one or more database queries to determine whether any of the one or more database queries have not been specified with an explicit total order;

means for inserting automatically and with the database query agent on the hardware database server, for the one or more database queries without an explicit total order, one or more query clauses to support paging of query results to generate, automatically and without user action, an improved database query, wherein the one or more clauses include at least a LIMIT clause in combination with at least an OFFSET clause in salesforce object query language (SOQL) syntax, the OFFSET clause specify a number of starting rows to skip in a query result set;

means for causing, with the database query agent on the hardware database server, the improved database query to be performed within a multitenant database environment with the clauses to be used in displaying results from the improved database query in a paged format on a user electronic device utilizing a stateless transfer that does not cause data to be cached in a middle tier, wherein the one or more clauses inserted by the improved database query agent indicate a subset within the results from the improved database query to be presented, wherein tenant data is arranged so that data of one tenant is kept logically separate from tenant data of other tenants;

means for imposing, with the database query agent on the hardware database server, an order on the results from the improved database query with the database server to ensure the query result set ordering is consistent; and

means for returning, with the database query agent on the hardware database server, the subset as determined by the one or more clauses inserted by the database query agent to the user electronic device.

12. The apparatus of claim 11 wherein the order is based on a query shape.

13. The apparatus of claim 11 wherein the order is based on a query size.

14. A system comprising:

a server system to provide a multitenant environment, wherein the multitenant environment includes data for multiple client entities, each identified by a tenant identifier (ID) having one or more users associated with the tenant ID, users of each of multiple client identities can only access data identified by a tenant ID associated with the respective client entity, and the multitenant environment is at least a hosted database provided by an entity separate from the client entities, and provides on-demand database service to the client entities, the server system further configurable to receive, with a database query agent provided by a hardware database server, one or more database queries, to parse the one or more database queries to determine whether any of the one or more database queries have not been specified with an explicit total order, to insert automatically and with the database query agent on the hardware database server, for the one or more database queries without an explicit total order, one or more query clauses to support paging of query results to generate, automatically and without user action, an improved database query, wherein the one or more clauses include at least a LIMIT clause in combination with at least an OFFSET clause in salesforce object query language (SOQL) syntax, the OFFSET clause specify a number of starting rows to skip in a query result set, to cause, with the database query agent on the hardware database server, the improved database query to be performed within a multitenant database environment with the clauses to be used in displaying results from the improved database query in a paged format on a user electronic device utilizing a stateless transfer that does not cause data to be cached in a middle tier, wherein the one or more clauses inserted by the improved database query agent indicate a subset within the results from the improved database query to be presented, wherein tenant data is arranged so that data of one tenant is kept logically separate from tenant data of other tenants, to impose, with the database query agent on the hardware database server, an order on the results from the improved database query with the database server to ensure the query result set ordering is consistent, and to return, with the database query agent on the hardware database server, the subset as determined by the one or more clauses inserted by the database query agent to the user electronic device.

15. The system of claim 14 wherein the one or more offset values indicate a subset of rows within the results from the database query to return.

16. The system of claim 15 wherein the one or more offset values operate to impose a limit on the number of rows to return.

17. The system of claim 14 wherein the order is based on a query shape.

18. The system of claim 14 wherein the order is based on a query size.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2017
From: WHITE, SETH JOHN
To: SALESFORCE.COM, INC.
Reel/Frame 041237/0964 →
Continuity (3)
Continuation 14013687 · Aug 29, 2013
Provisional Application 61696584 · Sep 4, 2012
Related Publication 20170154085A1 · Jun 1, 2017