Patents by Inventor Douglas Doole
Douglas Doole has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20260161659Abstract: Techniques are disclosed for dynamically managing data structures during the execution of program instructions in a database system using Just-In-Time (JIT) compilation. A system receives program instructions that include function calls passing data structures as parameters. The system analyzes the call stack associated with the function calls to determine whether to pass the data structure in a first format (e.g., flattened format) or a second format (e.g., expanded format). Based on the analysis, the system inserts bytecode instructions that convert the data structure between formats, depending on whether operations such as write or read are detected. In some embodiments, the system executes the program instructions, including the inserted bytecode, and dynamically converts the data structure from a contiguous block of memory to a non-contiguous block upon detecting modification operations.Type: ApplicationFiled: December 9, 2024Publication date: June 11, 2026Inventors: Abhijith Anilkumar, Douglas Doole, Rui Zhang
-
Publication number: 20250390489Abstract: Techniques are disclosed relating to implementing a statement-level INSTEAD OF trigger. In one embodiment a computer system receives a database operation statement specifying performance of a particular database operation on one or more database views of selected data from a database, wherein a given database trigger of one or more statement-level database triggers is executable to initiate execution of at least one trigger instruction for the database instead of performing the particular database operation on a specified database view of the one or more database views. For a given database view of the one or more database views, the computer system stores a trigger function call in a function call data structure for each statement-level database trigger defined for the database operation statement and the given database view. The computer system executes the stored trigger function calls instead of executing the database operation statement.Type: ApplicationFiled: August 29, 2025Publication date: December 25, 2025Inventors: Abhijith Anilkumar, Douglas Doole, Simon Y. Wong, Randy Philip Spalten
-
Publication number: 20250363093Abstract: Database trigger firing techniques for reducing unnecessary trigger firings are disclosed. In one embodiment a computer system stores trigger information relating to initiating execution of at least one trigger instruction for a database in connection with a database operation statement. The trigger information includes a first set of one or more database field identifiers for a first set of one or more fields in the database and a second set of one or more database field identifiers for a second set of one or more fields in the database. The computer system receives a database operation statement and makes determinations that at least one field within the first set of fields and at least one field within the second set of fields is specified by the database operation statement. Based at least in part on the determinations, the computer system initiates execution of the at least one trigger instruction.Type: ApplicationFiled: July 31, 2025Publication date: November 27, 2025Inventors: Douglas Doole, Simon Y. Wong
-
Patent number: 12405947Abstract: Techniques are disclosed relating to implementing a statement-level INSTEAD OF trigger. In one embodiment a computer system stores trigger information associated with a statement-level database trigger executable to initiate execution of at least one trigger instruction for a database instead of performing a particular database operation, on a database view, specified by a database operation statement. The computer system receives a first database operation statement specifying performance of the particular database operation on the database view and identifies a set of target rows, within the database view, targeted by the first database operation statement. In addition, the computer system generates a reference table associated with the database view, where the reference table includes rows corresponding to the target rows.Type: GrantFiled: January 31, 2024Date of Patent: September 2, 2025Assignee: Salesforce, Inc.Inventors: Abhijith Anilkumar, Douglas Doole, Simon Y. Wong, Randy Philip Spalten
-
Patent number: 12393569Abstract: Techniques are disclosed relating to implementing database trigger firing criteria to reduce unnecessary trigger firings. In one embodiment a computer system stores trigger information relating to initiating execution of at least one trigger instruction for a database, in connection with a particular database operation specified by a database operation statement. The trigger information includes a set of one or more database field identifiers for a set of one or more fields in the database. The computer system receives a first database operation statement and makes a determination that at least one field within the set of fields is not specified by the first database operation statement. Based at least in part on the determination, the computer system initiates execution of the at least one trigger instruction.Type: GrantFiled: January 16, 2024Date of Patent: August 19, 2025Inventors: Douglas Doole, Simon Y. Wong
-
Patent number: 12380084Abstract: Techniques are disclosed relating to constructing a delta transition table for a database trigger. A computer system may store trigger information identifying a database trigger having a set of routines to be executed after an update operation has been performed on the database table. The computer system may perform a particular update operation that includes updating one or more rows of the database table. As part of performing the particular update operation, the computer system may construct a delta transition table that includes an original version of the one or more rows prior to the particular update operation and an updated version of the one or more rows resulting from the particular update operation. Subsequent to performing the particular update operation, the computer system may make the delta transition table available to the database trigger to facilitate an execution of the set of routines.Type: GrantFiled: January 19, 2023Date of Patent: August 5, 2025Assignee: Salesforce, Inc.Inventors: Douglas Doole, Simon Y. Wong
-
Publication number: 20250245217Abstract: Techniques are disclosed relating to implementing a statement-level INSTEAD OF trigger. In one embodiment a computer system stores trigger information associated with a statement-level database trigger executable to initiate execution of at least one trigger instruction for a database instead of performing a particular database operation, on a database view, specified by a database operation statement. The computer system receives a first database operation statement specifying performance of the particular database operation on the database view and identifies a set of target rows, within the database view, targeted by the first database operation statement. In addition, the computer system generates a reference table associated with the database view, where the reference table includes rows corresponding to the target rows.Type: ApplicationFiled: January 31, 2024Publication date: July 31, 2025Inventors: Abhijith Anilkumar, Douglas Doole, Simon Y. Wong, Randy Philip Spalten
-
Publication number: 20250231927Abstract: Techniques are disclosed relating to implementing database trigger firing criteria to reduce unnecessary trigger firings. In one embodiment a computer system stores trigger information relating to initiating execution of at least one trigger instruction for a database, in connection with a particular database operation specified by a database operation statement. The trigger information includes a set of one or more database field identifiers for a set of one or more fields in the database. The computer system receives a first database operation statement and makes a determination that at least one field within the set of fields is not specified by the first database operation statement. Based at least in part on the determination, the computer system initiates execution of the at least one trigger instruction.Type: ApplicationFiled: January 16, 2024Publication date: July 17, 2025Inventors: Douglas Doole, Simon Y. Wong
-
Patent number: 11947532Abstract: Techniques are disclosed relating to managing data objects. A computer system may access a first application comprising a set of functions and may execute a second application to facilitate execution of the first application. The first application may be written in a different programming language than the second application. The second application may manage, on behalf of the first application, memory resources of data objects that are defined within ones of the set of functions of the first application. The second application may establish, for the data objects, ownership information that indicates which ones of the functions are utilizing the data objects. The ownership information may be usable to determine, upon completion of a function of the set of functions, whether a given one of the data objects can be deallocated based on whether the given data object is being utilized by another function.Type: GrantFiled: September 1, 2022Date of Patent: April 2, 2024Assignee: Salesforce, Inc.Inventors: Rui Zhang, Douglas Doole, Abhijith Anilkumar
-
Publication number: 20240086387Abstract: Techniques are disclosed relating to constructing a delta transition table for a database trigger. A computer system may store trigger information identifying a database trigger having a set of routines to be executed after an update operation has been performed on the database table. The computer system may perform a particular update operation that includes updating one or more rows of the database table. As part of performing the particular update operation, the computer system may construct a delta transition table that includes an original version of the one or more rows prior to the particular update operation and an updated version of the one or more rows resulting from the particular update operation. Subsequent to performing the particular update operation, the computer system may make the delta transition table available to the database trigger to facilitate an execution of the set of routines.Type: ApplicationFiled: January 19, 2023Publication date: March 14, 2024Inventors: Douglas Doole, Simon Y. Wong
-
Publication number: 20240078227Abstract: Techniques are disclosed relating to managing data objects. A computer system may access a first application comprising a set of functions and may execute a second application to facilitate execution of the first application. The first application may be written in a different programming language than the second application. The second application may manage, on behalf of the first application, memory resources of data objects that are defined within ones of the set of functions of the first application. The second application may establish, for the data objects, ownership information that indicates which ones of the functions are utilizing the data objects. The ownership information may be usable to determine, upon completion of a function of the set of functions, whether a given one of the data objects can be deallocated based on whether the given data object is being utilized by another function.Type: ApplicationFiled: September 1, 2022Publication date: March 7, 2024Inventors: Rui Zhang, Douglas Doole, Abhijith Anilkumar
-
Patent number: 11176138Abstract: Caching runtime plan data that is determined not to change for different invocations of a query plan. In some embodiments, a computing system accesses information that specifies a query plan generated for a first database query and generates a first runtime plan for the first database query based on the query plan. In some embodiments, the system caches information generated for the first runtime plan that is determined not to change for different invocations of the query plan. For example, transformation code may include separate functions for mutable and immutable state. In some embodiments, the system retrieves and uses the cached information to generate a second runtime plan for a second database query. Disclosed techniques may improve performance of query plan transformations that hit in the runtime plan cache.Type: GrantFiled: February 25, 2020Date of Patent: November 16, 2021Assignee: salesforce.com, inc.Inventors: Punit B. Shah, Douglas Doole, Rama K Korlapati, Serge P. Rielau
-
Publication number: 20210263936Abstract: Caching runtime plan data that is determined not to change for different invocations of a query plan. In some embodiments, a computing system accesses information that specifies a query plan generated for a first database query and generates a first runtime plan for the first database query based on the query plan. In some embodiments, the system caches information generated for the first runtime plan that is determined not to change for different invocations of the query plan. For example, transformation code may include separate functions for mutable and immutable state. In some embodiments, the system retrieves and uses the cached information to generate a second runtime plan for a second database query. Disclosed techniques may improve performance of query plan transformations that hit in the runtime plan cache.Type: ApplicationFiled: February 25, 2020Publication date: August 26, 2021Inventors: Punit B. Shah, Douglas Doole, Rama K. Korlapati, Serge P. Rielau