IP Library Granted Patent US 9,619,210
Granted Patent B2
US 9,619,210 · App. 15/154,985 · Granted Apr 11, 2017

Parsing and compiling data system queries

Inventors: David R. Kent, IV (Colorado Springs, CO); Ryan Caudy (New York, NY); Charles Wright (Cortland Manor, NY); Mark Zeldis (Randolph, NJ); Radu Teodorescu (New York, NY)
G06F8/30G06F8/41G06F8/427
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 9,619,210
App. No.
15/154,985
Granted
Apr 11, 2017
Kind
B2
Abstract

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

Claims (72)

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. The system of claim 1 , wherein the computer data system query language code includes one or more instructions of a data system query language.

3. The system of claim 1 , wherein the operations further include identifying a source of columns or query scope variables for substitution and use in computer programming language code.

4. The system of claim 1 , wherein the operations further include persisting the compiled computer programming language code by storing the precompiled code in the precompiled code repository.

5. The system of claim 1 ,

wherein the token includes a result of a hash function of one or more attributes of the computer programming language code; and

wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository further comprises: based on the comparing, determining whether the token matches any of the repository tokens.

6. The system of claim 1 , wherein the inserting includes inserting references to data objects and variables that have been made available to the query language code.

7. The system of claim 1 , wherein the operations further include repeating the resolving and inserting until any unresolved columns or variables have been resolved.

8. 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.

9. The method of claim 8 , wherein the computer data system query language code includes one or more instructions of a data system query language.

10. The method of claim 8 , further comprising identifying a source of columns or query scope variables for substitution and use in computer programming language code.

11. The method of claim 8 , further comprising persisting the compiled computer programming language code by storing the precompiled code in the precompiled code repository.

12. The method of claim 8 ,

wherein the token includes a result of a hash function of one or more attributes of the computer programming language code; and

wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository further comprises: based on the comparing, determining whether the token matches any of the repository tokens.

13. The method of claim 8 , wherein the inserting includes inserting references to data objects and variables that have been made available to the query language code.

14. The method of claim 8 , further comprising repeating the resolving and inserting until any unresolved columns or variables have been resolved.

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.

16. The nontransitory computer readable medium of claim 15 , wherein the computer data system query language code includes one or more instructions of a data system query language.

17. The nontransitory computer readable medium of claim 15 , wherein the operations further include identifying a source of columns or query scope variables for substitution and use in computer programming language code.

18. The nontransitory computer readable medium of claim 15 , wherein the operations further include persisting the compiled computer programming language code by storing the precompiled code in the precompiled code repository.

19. The nontransitory computer readable medium of claim 15 ,

wherein the token includes a result of a hash function of one or more attributes of the computer programming language code; and

wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository further comprises: based on the comparing, determining whether the token matches any of the repository tokens.

20. The nontransitory computer readable medium of claim 15 , wherein the inserting includes inserting references to data objects and variables that have been made available to the query language code, and wherein the operations further include repeating the resolving and inserting until any unresolved columns or variables have been resolved.

Assignments (3)
CHANGE OF NAME Recorded Sep 5, 2018
From: ILLUMON LLC
To: DEEPHAVEN DATA LABS LLC
Reel/Frame 047017/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: RIES, BRIAN; FERRETTI-SMYTHE, JUAN CRISTIAN; WRIGHT, CHARLES; VYDROV, OLEG; CAUDY, RYAN; KENT, DAVID R., IV; DORFMAN, NATHANIEL J.; TEODORESCU, RADU; ZELDIS, MARK; BRONNIMANN, HERVE; BASRALIAN, RAFFI
To: ILLUMON LLC
Reel/Frame 044557/0029 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2017
From: WALLEYE SOFTWARE, LLC
To: ILLUMON LLC
Reel/Frame 043722/0092 →
Continuity (2)
Provisional Application 62161813 · May 14, 2015
Related Publication 20160335057A1 · Nov 17, 2016