IP Library Granted Patent US 12,675,472
Granted Patent B2
US 12,675,472 · App. 15/453,386 · Granted Jul 7, 2026

Source independent query language

Inventor: Thomas R. Kennedy, Jr. (Miami Beach, FL)
Assignee: JITTERBIT, INC.
G06F16/2448
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 12,675,472
App. No.
15/453,386
Filed
Mar 8, 2017
Granted
Jul 7, 2026
Kind
B2
Art Unit
2153
USPC
707/763
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for a source independent query language. One of the methods includes receiving, by a computer system, a statement to perform operations on data stored in a data storing application, the data including fields. The method includes identifying a query language based on the data store. The method includes transforming the received statement into a query language specific statement. The method includes identifying at least one operation of the operations that is not supported by the query language specific statement. The method includes obtaining a function to replace the unsupported operation. The method includes applying the function to the query language specific statement. The method also includes providing the query language specific statement to the data storing application for processing.

Claims (47)

1 . A computer-implemented method, the method comprising:

receiving, by a computer system, an executable statement comprising a plurality of operations on data stored in a data storing application, the data including fields, each operation of the plurality of operations being associated with an action;

identifying, at a query processor, a first database query language that is associated with a data store of the data storing application, the first database query language being identified from among a plurality of available database query languages;

for the received executable statement:

transforming, based on the first database query language, the received executable statement into a database query language specific statement for the data store of the data storing application, the database query language specific statement being of the first database query language;

identifying at least one operation of the plurality of operations that is not supported by the first database query language for the data store;

obtaining a function by retrieving, over a network, the function from a function library that is remote from and logically independent of the data store, the function being in a second database query language other than the first database query language of the database query language specific statement, the function comprising at least one substitute operation that is configured to perform one or more different actions than the respective action of the at least one operation of the plurality of operations that is not supported by the database query language specific statement for the data store, wherein performing the one or more different actions by the substitute operation causes an equivalent result as performing the respective action of the at least one operation that is not supported;

encapsulating the database query language specific statement and the function together as a single package;

and

providing the single package to the data store, wherein the data store engine executes the database query language specific statement to obtain intermediate results, and then sequentially invokes the function in-line on the intermediate results within the data store engine, such that execution of the database query language specific statement and the function performs each of the operations of the plurality of operations.

2 . The computer implemented method of claim 1 , wherein the function accepts multiple inputs and produces a single output.

3 . The computer implemented method of claim 1 , wherein the function changes a value of a data element absent changing a type of the data element.

4 . The computer-implemented method of claim 1 , wherein the function changes a format of a data element.

5 . The computer implemented method of claim 1 , wherein the statement is a SQL statement and the application is a NoSQL database.

6 . The method of claim 1 , wherein applying the function with at least a portion of the database query language specific statement comprises:

applying at least the portion of the database query language specific statement to the data store to obtain intermediate results; and

applying the function to the intermediate results.

7 . The method of claim 1 , wherein the first database query language comprises a first proprietary database query language, and wherein the second database query language comprises a second proprietary database query language different from the first proprietary database query language.

8 . A non-transitory computer storage medium encoded with computer program instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving, by a computer system, an executable statement comprising a plurality of operations on data stored in a data storing application, the data including fields, each operation of the plurality of operations being associated with an action;

identifying, at a query processor, a first database query language that is associated with a data store of the data storing application, the first database query language being identified from among a plurality of available database query languages;

for the received executable statement:

transforming, based on the first database query language, the received executable statement into a database query language specific statement for the data store of the data storing application, the database query language specific statement being of the first database query language;

identifying at least one operation of the plurality of operations that is not supported by the first database query language for the data store;

obtaining a function by retrieving, over a network, the function from a function library that is remote from and logically independent of the data store, the function being in a second database query language other than the first database query language of the database query language specific statement, the function comprising at least one substitute operation that is configured to perform one or more different actions than the respective action of the at least one operation of the plurality of operations that is not supported by the database query language specific statement for the data store, wherein performing the one or more different actions by the substitute operation causes an equivalent result as performing the respective action of the at least one operation that is not supported;

encapsulating the database query language specific statement and the function together as a single package;

and

providing the single package to the data store, wherein the data store engine executes the database query language specific statement to obtain intermediate results, and then sequentially invokes the function in-line on the intermediate results within the data store engine, such that execution of the database query language specific statement and the function performs each of the operations of the plurality of operations.

9 . The non-transitory computer storage medium of claim 8 , wherein the function accepts multiple inputs and produces a single output.

10 . The non-transitory computer storage medium of claim 8 , wherein the function changes a value of a data element absent changing a type of the data element.

11 . The non-transitory computer storage medium of claim 8 , wherein the function changes a format of a data element.

12 . The non-transitory computer storage medium of claim 8 , wherein the statement is a SQL statement and the application is a NoSQL database.

13 . A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by a computer system, an executable statement comprising a plurality of operations on data stored in a data storing application, the data including fields, each operation of the plurality of operations being associated with an action;

identifying, at a query processor, a first database query language that is associated with a data store of the data storing application, the first database query language being identified from among a plurality of available database query languages;

for the received executable statement:

transforming, based on the first database query language, the received executable statement into a database query language specific statement for the data store of the data storing application, the database query language specific statement being of the first database query language;

identifying at least one operation of the plurality of operations that is not supported by the first database query language for the data store;

obtaining a function by retrieving, over a network, the function from a function library that is remote from and logically independent of the data store, the function being in a second database query language other than the first database query language of the database query language specific statement, the function comprising at least one substitute operation that is configured to perform one or more different actions than the respective action of the at least one operation of the plurality of operations that is not supported by the database query language specific statement for the data store, wherein performing the one or more different actions by the substitute operation causes an equivalent result as performing the respective action of the at least one operation that is not supported;

encapsulating the database query language specific statement and the function together as a single package;

and

providing the single package to the data store, wherein the data store engine executes the database query language specific statement to obtain intermediate results, and then sequentially invokes the function in-line on the intermediate results within the data store engine, such that execution of the database query language specific statement and the function performs each of the operations of the plurality of operations.

14 . The system of claim 13 , wherein the function accepts multiple inputs and produces a single output.

15 . The system of claim 13 , wherein the function changes a value of a data element absent changing a type of the data element.

16 . The system of claim 13 , wherein the function changes a format of a data element.

17 . The system of claim 13 , wherein the statement is a SQL statement and the application is a NoSQL database.

Assignments (4)
SECURITY INTEREST Recorded Mar 23, 2023
From: JITTERBIT, INC.
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 063069/0088 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 062941 FRAME: 0640. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 15, 2023
From: VINYL DEVELOPMENT LLC
To: JITTERBIT, INC.
Reel/Frame 063101/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2023
From: VINYL DEVELOPMENT, LLC
To: JITTERBIT, INC.
Reel/Frame 062941/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: KENNEDY, THOMAS R., JR.
To: VINYL DEVELOPMENT LLC
Reel/Frame 062168/0375 →
Continuity (2)
Provisional Application 62305708 · Mar 9, 2016
Related Publication 20170262498A1 · Sep 14, 2017
References Cited (71)
US 5987452A · Kung · 1999 [cited by examiner]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7299493B1 · Burch et al. · 2007 [cited by applicant]
US 7657881B2 · Nagendra · 2010 [cited by examiner]
US 7676499B2 · Dorsett, Jr. · 2010 [cited by applicant]
US 7809694B2 · Nelson · 2010 [cited by applicant]
US 8032509B2 · Piedmonte · 2011 [cited by examiner]
US 8417715B1 · Bruckhaus et al. · 2013 [cited by applicant]
US 8863156B1 · Lepanto et al. · 2014 [cited by applicant]
US 9185125B2 · Varsanyi · 2015 [cited by examiner]
US 9275099B1 · Kennedy · 2016 [cited by applicant]
US 9547687B2 · Kennedy · 2017 [cited by applicant]
US 9705918B2 · Porras et al. · 2017 [cited by applicant]
US 9886483B1 · Harrison et al. · 2018 [cited by applicant]
US 10496632B2 · Kennedy · 2019 [cited by applicant]
US 10558644B2 · Kennedy · 2020 [cited by applicant]
US 11586607B2 · Kennedy, Jr. · 2023 [cited by applicant]
US 20040226031A1 · Zimmerman · 2004 [cited by examiner]
US 20050160100A1 · Eikenhorst · 2005 [cited by examiner]
US 20050289013A1 · Goldberg · 2005 [cited by applicant]
US 20050289125A1 · Liu · 2005 [cited by applicant]
US 20060020582A1 · Dettinger et al. · 2006 [cited by applicant]
US 20060134712A1 · Stromgren · 2006 [cited by examiner]
US 20070027905A1 · Warren · 2007 [cited by applicant]
US 20070038985A1 · Meijer · 2007 [cited by applicant]
US 20070169017A1 · Coward · 2007 [cited by examiner]
US 20080046981A1 · Philyaw · 2008 [cited by applicant]
US 20080120286A1 · Dettinger et al. · 2008 [cited by applicant]
US 20080222616A1 · Cheng · 2008 [cited by examiner]
US 20080256082A1 · Davies et al. · 2008 [cited by applicant]
US 20090254516A1 · Meiyyappan et al. · 2009 [cited by applicant]
US 20100036801A1 · Pirvali · 2010 [cited by applicant]
US 20100114932A1 · Whitcher · 2010 [cited by examiner]
US 20100185645A1 · Pazdziora · 2010 [cited by examiner]
US 20100306220A1 · Sthanikam · 2010 [cited by examiner]
US 20100325122A1 · Yassin · 2010 [cited by applicant]
US 20110209131A1 · Hohenstein · 2011 [cited by examiner]
US 20110246415A1 · Li et al. · 2011 [cited by applicant]
US 20120166238A1 · Mohanty et al. · 2012 [cited by applicant]
US 20130060803A1 · Maman · 2013 [cited by examiner]
US 20130066801A1 · Phillips · 2013 [cited by applicant]
US 20130166539A1 · Clark et al. · 2013 [cited by applicant]
US 20130282710A1 · Raghavan et al. · 2013 [cited by applicant]
US 20130311445A1 · Narita · 2013 [cited by applicant]
US 20130339293A1 · Witten · 2013 [cited by applicant]
US 20140075519A1 · Porras et al. · 2014 [cited by applicant]
US 20140095814A1 · Marden et al. · 2014 [cited by applicant]
US 20140129582A1 · Ramsay · 2014 [cited by examiner]
US 20140172833A1 · Taylor · 2014 [cited by applicant]
US 20140214890A1 · Johnson · 2014 [cited by applicant]
US 20140214897A1 · Zhu · 2014 [cited by applicant]
US 20140244680A1 · Chandran · 2014 [cited by applicant]
US 20140258341A1 · Mazoue · 2014 [cited by examiner]
US 20140279837A1 · Guo · 2014 [cited by examiner]
US 20140372466A1 · Wong · 2014 [cited by examiner]
US 20140379693A1 · May et al. · 2014 [cited by applicant]
US 20150212864A1 · Scrimo, Jr. · 2015 [cited by examiner]
US 20150227135A1 · McAdam · 2015 [cited by examiner]
US 20150317361A1 · Battaglia · 2015 [cited by applicant]
US 20160026680A1 · Banerjee · 2016 [cited by applicant]
US 20170169068A1 · Kennedy, Jr. · 2017 [cited by examiner]
US 20170262498A1 · Kennedy · 2017 [cited by examiner]
US 20200125551A1 · Kennedy · 2020 [cited by applicant]
US 20210081389A1 · Abraham et al. · 2021 [cited by applicant]
US 20230259502A1 · Kennedy, Jr. · 2023 [cited by applicant]
US 20240078236A1 · Kennedy · 2024 [cited by applicant]
International Search Report and Written Opinion for corresponding Appl No. PCT/US17/21386, dated May 25, 2017. [cited by applicant]
International Search Report and Written Opinion received in connection with corresponding PCT Appl No. PCT/US2016/065783, dated Jan. 12, 2017. [cited by applicant]
U.S. Appl. No. 14/963,674, filed Dec. 9, 2015, Thomas R. Kennedy, Jr. [cited by applicant]
PCT International Preliminary Report on Patentability in International Appln. No. PCT/US17/21386, dated Sep. 20, 2018, 7 pages. [cited by applicant]
PCT International Preliminary Report on Patentability in International Appln. No. PCT/US2016/065783, dated Jun. 21, 2018, 7 pages. [cited by applicant]