US9619210B2

Parsing and compiling data system queries

Summary by NHIP

Query Parsing and Compilation System

The system parses query language code, resolves column types based on context, and generates programming language code. It checks a repository for precompiled code, loading it if available or compiling the new code otherwise before instantiation and execution.

Claim Score by NHIP

Read claim 8, the broadest

Abstract

Described are methods, systems and computer readable media for parsing and compiling data system queries.

US9619210B2, drawing sheet 1
Sheet 1 of 7

Term

9.6 yearsleft in the term

Expires 14 May 2036.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

20 claims: 3 independent, 17 dependent

  1. 1
    A system for parsing, generating code and compiling computer data system query language code, the system comprising:one or more hardware processors coupled to a nontransitory computer readable medium having stored thereon software instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: obtaining, at the one or more hardware processors, computer data system query language code from an electronic computer readable data storage;parsing, at the one or more hardware processors, the computer data system query language code to generate a computer data system query language parsed code structure;resolving, at the one or more hardware processors, a type of one or more columns represented in the parsed code structure based on a determined context of the one or more columns;inserting, at the one or more hardware processors, resolved types into the parsed code structure;generating, at the one or more hardware processors, computer programming language code from the computer data system query language parsed code structure;determining, at the one or more hardware processors, whether precompiled code corresponding to the generated computer programming language code is available in a precompiled code repository stored in the electronic computer readable data storage;when precompiled code is available in the precompiled code repository, loading, at the one or more hardware processors, the precompiled code;when precompiled code is not available in the precompiled code repository: compiling, at the one or more hardware processors, the computer programming language code to generate compiled computer programming language code;and loading, at the one or more hardware processors, the compiled computer programming language code;instantiating, at the one or more hardware processors, the loaded precompiled code or the compiled computer programming language code;and executing, at the one or more hardware processors, the instantiated code to perform a query operation corresponding to the computer data system query language code, wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository comprises: generating a token representing the generated computer programming language code;and comparing the token to one or more repository tokens in the precompiled code repository corresponding to precompiled code units.
  2. 8
    Broadest claimClaim Score 20, narrow(NHIP)A method for parsing, generating code and compiling computer data system query language code, the method comprising:obtaining, at a hardware processor, computer data system query language code from an electronic computer readable data storage;parsing, at the hardware processor, the computer data system query language code to generate a computer data system query language parsed code structure;resolving, at the hardware processor, a type of one or more columns represented in the parsed code structure based on a determined context of the one or more columns;inserting, at the hardware processor, resolved types into the parsed code structure;generating, at the hardware processor, computer programming language code from the computer data system query language parsed code structure;determining, at the hardware processor, whether precompiled code corresponding to the generated computer programming language code is available in a precompiled code repository stored in the electronic computer readable data storage;when precompiled code is available in the precompiled code repository, loading, at the hardware processor, the precompiled code;when precompiled code is not available in the precompiled code repository: compiling, at the hardware processor, the computer programming language code to generate compiled computer programming language code;and loading, at the hardware processor, the compiled computer programming language code;instantiating, at the hardware processor, the loaded precompiled code or the compiled computer programming language code;and executing, at the hardware processor, the instantiated code to perform a query operation corresponding to the computer data system query language code, wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository comprises: generating a token representing the generated computer programming language code;and comparing the token to one or more repository tokens in the precompiled code repository corresponding to precompiled code units.
  3. 15
    A nontransitory computer readable medium having stored thereon software instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:obtaining, at the one or more hardware processors, computer data system query language code from an electronic computer readable data storage;parsing, at the one or more hardware processors, the computer data system query language code to generate a computer data system query language parsed code structure;resolving, at the one or more hardware processors, a type of one or more columns represented in the parsed code structure based on a determined context of the one or more columns;inserting, at the one or more hardware processors, resolved types into the parsed code structure;generating, at the one or more hardware processors, computer programming language code from the computer data system query language parsed code structure;determining, at the one or more hardware processors, whether precompiled code corresponding to the generated computer programming language code is available in a precompiled code repository stored in the electronic computer readable data storage;when precompiled code is available in the precompiled code repository, loading, at the one or more hardware processors, the precompiled code;when precompiled code is not available in the precompiled code repository: compiling, at the one or more hardware processors, the computer programming language code to generate compiled computer programming language code;and loading, at the one or more hardware processors, the compiled computer programming language code;instantiating, at the one or more hardware processors, the loaded precompiled code or the compiled computer programming language code;and executing, at the one or more hardware processors, the instantiated code to perform a query operation corresponding to the computer data system query language code, wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository comprises: generating a token representing the generated computer programming language code;and comparing the token to one or more repository tokens in the precompiled code repository corresponding to precompiled code units.