IP Library Granted Patent US 10,242,040
Granted Patent B2
US 10,242,040 · App. 15/452,574 · Granted Mar 26, 2019

Parsing and compiling data system queries

Inventors: David R. Kent, IV (Colorado Springs, CO); Ryan Caudy (New York, NY); Charles Wright (Cortlandt Manor, NY); Mark Zeldis (Randolph, NJ); Radu Teodorescu (New York, NY)
Assignee: Deephaven Data Labs LLC
G06F17/30368G06F3/0481G06F3/0482G06F3/0483G06F3/0485G06F3/04847G06F3/04895G06F3/0605G06F3/067G06F3/0656G06F8/30G06F8/41G06F8/427G06F8/60G06F11/1451G06F11/1464G06F11/1469G06F12/0261G06F12/084G06F12/1483G06F15/17331G06F17/2235G06F17/24G06F17/245G06F17/246G06F17/276G06F17/2715G06F17/30117G06F17/30283G06F17/30303G06F17/30312G06F17/30315G06F17/30321G06F17/30324G06F17/30327G06F17/30333G06F17/30336G06F17/30339G06F17/30345G06F17/30371G06F17/30374G06F17/30377G06F17/30398G06F17/30424G06F17/30448G06F17/30451G06F17/30454G06F17/30457G06F17/30477G06F17/30483G06F17/30498G06F17/30522G06F17/30528G06F17/30554G06F17/30563G06F17/30584G06F17/30598G06F17/30864G06F17/30867G06F17/30887G06F17/30902G06F17/30958G06F17/30997G06F21/00G06F21/6209H04L12/18H04L51/046H04L51/12H04L61/2069H04L63/101H04L63/102H04L67/1002H04L67/141H04L67/28H04L67/2833H04L67/2842H04L67/34H04L67/42H04L69/16G06F17/30342G06F17/40G06F2201/805G06F2201/84G06F2212/1052G06F2212/154G06F2212/163G06F2212/60H04L67/2847
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,242,040
App. No.
15/452,574
Granted
Mar 26, 2019
Kind
B2
Abstract

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

Claims (63)

1. A system for parsing computer data system query language code and generating 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:

parsing, at the one or more hardware processors, 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;

generating, at the one or more hardware processors, computer programming language code from the computer data system query language parsed code structure; and

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,

wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository comprises:

generating an identifier representing the generated computer programming language code; and

comparing the identifier to one or more repository identifiers 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:

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

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 identifier 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 identifier matches any of the repository identifiers.

6. The system of claim 1 , wherein the operations further include inserting, at the one or more hardware processors, resolved types into the parsed code structure, including 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:

inserting, at the one or more hardware processors, resolved types into the parsed code structure; and

repeating the resolving and inserting until any unresolved columns or variables have been resolved.

8. A method for parsing computer data system query language code and generating code, the method comprising:

parsing, at the hardware processor, 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;

generating, at the hardware processor, computer programming language code from the computer data system query language parsed code structure; and

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,

wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository comprises:

generating an identifier representing the generated computer programming language code; and

comparing the identifier to one or more repository identifiers 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:

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

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 identifier 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 identifier matches any of the repository identifiers.

13. The method of claim 8 , further comprising inserting, at the one or more hardware processors, resolved types into the parsed code structure, including 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:

inserting, at the one or more hardware processors, resolved types into the parsed code structure; and

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:

parsing, at the one or more hardware processors, 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;

generating, at the one or more hardware processors, computer programming language code from the computer data system query language parsed code structure; and

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,

wherein determining whether precompiled code corresponding to the programming language code is available in a precompiled code repository comprises:

generating an identifier representing the generated computer programming language code; and

comparing the identifier to one or more repository identifiers 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:

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

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 identifier 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 identifier matches any of the repository identifiers.

20. The nontransitory computer readable medium of claim 15 , wherein the operations further include:

inserting, at the one or more hardware processors, resolved types into the parsed code structure, including inserting references to data objects and variables that have been made available to the query language code, and

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 Aug 22, 2018
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 046913/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2018
From: WALLEYE SOFTWARE, LLC
To: ILLUMON LLC
Reel/Frame 046666/0820 →
Continuity (3)
Continuation 15154985 · May 14, 2016
Provisional Application 62161813 · May 14, 2015
Related Publication 20170185385A1 · Jun 29, 2017