Patents by Inventor Colm McHugh
Colm McHugh 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).
-
Patent number: 12639291Abstract: Techniques are disclosed relating to implementing multiple index scans. A computer system may store a database table comprising fields and indexes corresponding to those fields. The computer system may receive a request to access records based on a Boolean expression that affects a selection of records from the database table and that comprises clauses, at least two of which are joined by an AND operation. The computer system may access the requested records. The accessing may include, for a given one of the at least two clauses, performing an index scan on an index that corresponds to the given clause to identify records that satisfy that clause. The computer system may update a hash table based on the identified records and then identify the requested records based on the hash table. The Boolean expression may include clauses joined by an OR operation that are processed using multiple index scans.Type: GrantFiled: January 16, 2025Date of Patent: May 26, 2026Assignee: Salesforce, Inc.Inventors: Colm McHugh, Rama K. Korlapati, Yi Xia
-
Patent number: 12632452Abstract: Techniques are disclosed relating to managing database queries. In some embodiments, a server system receives a query from a computer system and determines a set of aspects for the query, including at least a number of columns specified in the query and a computational cost of executing the query. The system generates a query vector based on the set of aspects determined for the query. The system then compares the query vector with a plurality of clusters, ones of the plurality of clusters comprising two or more previously generates query vectors generated based on aspects of queries previously received by the server system. Based on the comparing, specifically a distance between the query vector and the plurality of clusters of previously generated query vectors, the system classifies the query. Based on a classification of the query determined during the classifying, the system manages the query.Type: GrantFiled: January 13, 2025Date of Patent: May 19, 2026Assignee: Salesforce, Inc.Inventors: Anup Ghatage, Colm McHugh
-
Publication number: 20260119502Abstract: In an embodiment, a computer system performs a hash join. During a build phase, the computer system constructs a hash table in memory based on rows of a first table. The constructing may result in build batches of rows, including one build batch stored in memory and multiple build batches stored in a storage. The computer system determines whether any of the multiple build batches is skewed according to a data skew condition. In response to determining that there is at least one build batch that is skewed, the computer system loads one or more of the multiple build batches into memory such that there are at least two build batches stored in memory. During a probe phase, the computer system identifies, based on the at least two build batches stored in memory, rows of a second table to join with the rows of the first table.Type: ApplicationFiled: October 28, 2024Publication date: April 30, 2026Inventors: Rui Zhang, Colm McHugh, Yi Xia
-
Publication number: 20250371009Abstract: Techniques are disclosed relating to database query optimizers. In some embodiments, a system receives, from a query optimizer, a plurality of query plans for a database maintained by the database system. The system retrieves a set of database statistics for the database and generates, via a data synthesizer, a plurality of synthetic datasets, where generating a given synthetic dataset is performed based on a given query plan of the plurality of query plans and the set of database statistics, and includes generating a plurality of synthetic data tuples. The system executes the plurality of query plans on the plurality of synthetic datasets and updates the query optimizer based on results of executing the plurality of query plans on the plurality of synthetic datasets. The disclosed data synthesis may advantageously improve query performance due to more efficient query plans being selected for execution of requested queries.Type: ApplicationFiled: August 11, 2025Publication date: December 4, 2025Inventors: Bradley Glasbergen, Yen-Li Laih, Yi Xia, Colm McHugh, Prateek Swamy
-
Publication number: 20250291800Abstract: Techniques are disclosed relating to query planning and execution. A computer system can receive a database statement that comprises a LIKE predicate that defines a set of pattern parameters. The computer system may generate first and second query paths for a query plan associated with the database statement. The first query path utilizes an index associated with a database table specified by the database statement while the second query path does not utilize the index. The computer system executes the database statement in accordance with the query plan and values that are provided for the set of pattern parameters. As a part of executing the database statement, the computer system may evaluate those values to determine whether they are prefix constants and execute the first query path instead of the second query path if all the values are prefix constants.Type: ApplicationFiled: May 29, 2025Publication date: September 18, 2025Inventors: Colm McHugh, Bradley Glasbergen, Prateek Swamy, Yi Xia
-
Patent number: 12386832Abstract: Techniques are disclosed relating to database query optimizers. In some embodiments, a system receives, from a query optimizer, a plurality of query plans for a database maintained by the database system. The system retrieves a set of database statistics for the database and generates, via a data synthesizer, a plurality of synthetic datasets, where generating a given synthetic dataset is performed based on a given query plan of the plurality of query plans and the set of database statistics, and includes generating a plurality of synthetic data tuples. The system executes the plurality of query plans on the plurality of synthetic datasets and updates the query optimizer based on results of executing the plurality of query plans on the plurality of synthetic datasets. The disclosed data synthesis may advantageously improve query performance due to more efficient query plans being selected for execution of requested queries.Type: GrantFiled: January 26, 2024Date of Patent: August 12, 2025Assignee: Salesforce, Inc.Inventors: Bradley Glasbergen, Yen-Li Laih, Yi Xia, Colm McHugh, Prateek Swamy
-
Publication number: 20250245229Abstract: Techniques are disclosed relating to database configuration settings overrides. In some embodiments, a database system stores a set of default configuration settings that control operation of the database system. The database system receives a query requesting data from the database system, and metadata about the query. The database system determines, based on the query and the metadata, that a configuration settings override has been specified for the query, where the configuration settings override indicates that one or more of the default configuration settings are to be replaced with one or more configuration settings specific to the query. In response to the determining that a configuration settings override has been specified, the database system executes the query using the one or more specific configuration settings.Type: ApplicationFiled: January 26, 2024Publication date: July 31, 2025Inventors: Prateek Swamy, Yi Xia, Colm McHugh, Bradley Glasbergen
-
Publication number: 20250245223Abstract: Techniques are disclosed relating to database query optimizers. In some embodiments, a system receives, from a query optimizer, a plurality of query plans for a database maintained by the database system. The system retrieves a set of database statistics for the database and generates, via a data synthesizer, a plurality of synthetic datasets, where generating a given synthetic dataset is performed based on a given query plan of the plurality of query plans and the set of database statistics, and includes generating a plurality of synthetic data tuples. The system executes the plurality of query plans on the plurality of synthetic datasets and updates the query optimizer based on results of executing the plurality of query plans on the plurality of synthetic datasets. The disclosed data synthesis may advantageously improve query performance due to more efficient query plans being selected for execution of requested queries.Type: ApplicationFiled: January 26, 2024Publication date: July 31, 2025Inventors: Bradley Glasbergen, Yen-Li Laih, Yi Xia, Colm McHugh, Prateek Swamy
-
Publication number: 20250245231Abstract: Techniques are disclosed relating to query planning and execution. A computer system can receive a database statement that comprises a LIKE predicate that defines a set of pattern parameters. The computer system may generate first and second query paths for a query plan associated with the database statement. The first query path utilizes an index associated with a database table specified by the database statement while the second query path does not utilize the index. The computer system executes the database statement in accordance with the query plan and values that are provided for the set of pattern parameters. As a part of executing the database statement, the computer system may evaluate those values to determine whether they are prefix constants and execute the first query path instead of the second query path if all the values are prefix constants.Type: ApplicationFiled: January 26, 2024Publication date: July 31, 2025Inventors: Colm McHugh, Bradley Glasbergen, Prateek Swamy, Yi Xia
-
Patent number: 12373438Abstract: Techniques are disclosed relating to query planning and execution. A computer system can receive a database statement that comprises a LIKE predicate that defines a set of pattern parameters. The computer system may generate first and second query paths for a query plan associated with the database statement. The first query path utilizes an index associated with a database table specified by the database statement while the second query path does not utilize the index. The computer system executes the database statement in accordance with the query plan and values that are provided for the set of pattern parameters. As a part of executing the database statement, the computer system may evaluate those values to determine whether they are prefix constants and execute the first query path instead of the second query path if all the values are prefix constants.Type: GrantFiled: January 26, 2024Date of Patent: July 29, 2025Assignee: Salesforce, Inc.Inventors: Colm McHugh, Bradley Glasbergen, Prateek Swamy, Yi Xia
-
Publication number: 20250238422Abstract: Techniques are disclosed relating to managing database queries. In some embodiments, a server system receives a query from a computer system and determines a set of aspects for the query, including at least a number of columns specified in the query and a computational cost of executing the query. The system generates a query vector based on the set of aspects determined for the query. The system then compares the query vector with a plurality of clusters, ones of the plurality of clusters comprising two or more previously generates query vectors generated based on aspects of queries previously received by the server system. Based on the comparing, specifically a distance between the query vector and the plurality of clusters of previously generated query vectors, the system classifies the query. Based on a classification of the query determined during the classifying, the system manages the query.Type: ApplicationFiled: January 13, 2025Publication date: July 24, 2025Inventors: Anup Ghatage, Colm McHugh
-
Publication number: 20250156403Abstract: Techniques are disclosed relating to implementing multiple index scans. A computer system may store a database table comprising fields and indexes corresponding to those fields. The computer system may receive a request to access records based on a Boolean expression that affects a selection of records from the database table and that comprises clauses, at least two of which are joined by an AND operation. The computer system may access the requested records. The accessing may include, for a given one of the at least two clauses, performing an index scan on an index that corresponds to the given clause to identify records that satisfy that clause. The computer system may update a hash table based on the identified records and then identify the requested records based on the hash table. The Boolean expression may include clauses joined by an OR operation that are processed using multiple index scans.Type: ApplicationFiled: January 16, 2025Publication date: May 15, 2025Inventors: Colm McHugh, Rama K. Korlapati, Yi Xia
-
Patent number: 12235844Abstract: Techniques are disclosed relating to managing database queries. In some embodiments, a server system receives a query from a computer system and determines a set of aspects for the query, including at least a number of columns specified in the query and a computational cost of executing the query. The system generates a query vector based on the set of aspects determined for the query. The system then compares the query vector with a plurality of clusters, ones of the plurality of clusters comprising two or more previously generates query vectors generated based on aspects of queries previously received by the server system. Based on the comparing, specifically a distance between the query vector and the plurality of clusters of previously generated query vectors, the system classifies the query. Based on a classification of the query determined during the classifying, the system manages the query.Type: GrantFiled: January 22, 2024Date of Patent: February 25, 2025Assignee: Salesforce, Inc.Inventors: Anup Ghatage, Colm McHugh
-
Patent number: 12229119Abstract: Techniques are disclosed relating to implementing multiple index scans. A computer system may store a database table comprising fields and indexes corresponding to those fields. The computer system may receive a request to access records based on a Boolean expression that affects a selection of records from the database table and that comprises clauses, at least two of which are joined by an AND operation. The computer system may access the requested records. The accessing may include, for a given one of the at least two clauses, performing an index scan on an index that corresponds to the given clause to identify records that satisfy that clause. The computer system may update a hash table based on the identified records and then identify the requested records based on the hash table. The Boolean expression may include clauses joined by an OR operation that are processed using multiple index scans.Type: GrantFiled: December 29, 2021Date of Patent: February 18, 2025Assignee: Salesforce, Inc.Inventors: Colm McHugh, Rama K. Korlapati, Yi Xia
-
Publication number: 20230205760Abstract: Techniques are disclosed relating to implementing multiple index scans. A computer system may store a database table comprising fields and indexes corresponding to those fields. The computer system may receive a request to access records based on a Boolean expression that affects a selection of records from the database table and that comprises clauses, at least two of which are joined by an AND operation. The computer system may access the requested records. The accessing may include, for a given one of the at least two clauses, performing an index scan on an index that corresponds to the given clause to identify records that satisfy that clause. The computer system may update a hash table based on the identified records and then identify the requested records based on the hash table. The Boolean expression may include clauses joined by an OR operation that are processed using multiple index scans.Type: ApplicationFiled: December 29, 2021Publication date: June 29, 2023Inventors: Colm McHugh, Rama K. Korlapati, Yi Xia