Virtual table generator for analyzing geographic databases
First Claim
Patent Images
1. A computer-implemented method of accessing binary large objects in a geographic database, comprising:
- receiving, at a processor, a navigation query from an application for data stored as one of a plurality of binary large objects in a physical table, wherein each of the plurality of binary large objects is stored in a separate record in the geographic database;
retrieving, by the processor, the binary large object from the physical table stored in the geographic database;
providing, via the processor, the binary large object to an analyzer;
analyzing the binary large object at runtime by executing the analyzer with the processor, wherein the analyzer uses a reflection code which operates (a) in a plurality of modes to identify primitive data types or object handlers by searching for getters in the binary large object, (b) modifies its own structure at runtime based on an object tree of the binary large object, and (c) the analyzing comprises;
identifying, by the processor, one or more methods having one of one or more predetermined prefixes in the binary large object,invoking, by the processor, a first method of the one or more methods to obtain a result object,determining, by the processor, whether the result object has an object handler class or is a primitive data type,responsive to determining that the result object has the object handler class, using, by the processor, a class corresponding to the object handler class to represent a value for the first method,responsive to determining that the result object is a primitive data type, using, by the processor, the primitive data type to represent the value for the first method, andresponsive to determining that the result object neither has the object handler class nor is a primitive data type, invoking, by the processor, a method of the result object,wherein the analyzing causes multiple object classes to be recursively traversed using the predetermined prefixes until the primitive data types or an object handler class are identified by the reflection code executed by the processor using the getters to retrieve row data for a virtual table, wherein the virtual table connects each of a plurality of geographic databases to a respective one of a plurality of scripts;
modifying the virtual table at runtime in response to the navigation query by the processor based on the object tree of the binary large object, the virtual table including data which corresponds to a mode of the plurality of modes, wherein the plurality of modes are a predetermined number of options for retrieving data from the binary large object in a particular order;
providing, using the processor, the virtual table to the application; and
accessing, using the application via the processor, the virtual table for data from the binary large object as stored in the virtual table as a response to the navigation query in order to perform a function of the application, wherein the navigation query is in structured query language and includes parameters for interpreting the binary large object and a mode used by the reflection code for retrieving data from the binary large object.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system for accessing database tables that contain binary large objects (BLOBs) is disclosed. The method includes encapsulating BLOB-based tables with virtual tables, which allows a user to access the content of the BLOBs via SQL. In one example, the virtual table has a generic table structure that consists of columns (e.g., class name, field name, and field value) and information regarding what level of an object hierarchy contains an element. In another example, a user can define the structure of the virtual table by identifying which object attributes to report.
-
Citations
19 Claims
-
1. A computer-implemented method of accessing binary large objects in a geographic database, comprising:
-
receiving, at a processor, a navigation query from an application for data stored as one of a plurality of binary large objects in a physical table, wherein each of the plurality of binary large objects is stored in a separate record in the geographic database; retrieving, by the processor, the binary large object from the physical table stored in the geographic database; providing, via the processor, the binary large object to an analyzer; analyzing the binary large object at runtime by executing the analyzer with the processor, wherein the analyzer uses a reflection code which operates (a) in a plurality of modes to identify primitive data types or object handlers by searching for getters in the binary large object, (b) modifies its own structure at runtime based on an object tree of the binary large object, and (c) the analyzing comprises; identifying, by the processor, one or more methods having one of one or more predetermined prefixes in the binary large object, invoking, by the processor, a first method of the one or more methods to obtain a result object, determining, by the processor, whether the result object has an object handler class or is a primitive data type, responsive to determining that the result object has the object handler class, using, by the processor, a class corresponding to the object handler class to represent a value for the first method, responsive to determining that the result object is a primitive data type, using, by the processor, the primitive data type to represent the value for the first method, and responsive to determining that the result object neither has the object handler class nor is a primitive data type, invoking, by the processor, a method of the result object, wherein the analyzing causes multiple object classes to be recursively traversed using the predetermined prefixes until the primitive data types or an object handler class are identified by the reflection code executed by the processor using the getters to retrieve row data for a virtual table, wherein the virtual table connects each of a plurality of geographic databases to a respective one of a plurality of scripts; modifying the virtual table at runtime in response to the navigation query by the processor based on the object tree of the binary large object, the virtual table including data which corresponds to a mode of the plurality of modes, wherein the plurality of modes are a predetermined number of options for retrieving data from the binary large object in a particular order; providing, using the processor, the virtual table to the application; and accessing, using the application via the processor, the virtual table for data from the binary large object as stored in the virtual table as a response to the navigation query in order to perform a function of the application, wherein the navigation query is in structured query language and includes parameters for interpreting the binary large object and a mode used by the reflection code for retrieving data from the binary large object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus comprising:
-
at least one processor; and at least one memory including computer program code for one or more programs; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to at least perform; receive a navigation query from an application for data stored as a binary large object of a plurality of binary large objects in a physical table, wherein each of the plurality of binary large objects is stored in a separate record in the geographic database; retrieve the binary large object from the physical table stored in the geographic database; provide the binary large object to an analyzer; analyze the binary large object at runtime using the analyzer, wherein (a) the analyzer uses a reflection code which operates in a plurality of modes to identify primitive data types or object handlers by searching for getters in the binary large object, (b) modifies its own structure at runtime based on an object tree of the binary large object, and (c) to analyze the binary large object, the at least one memory and the computer program code are configured to, with the processor, cause the apparatus to at least; identify one or more methods having one of one or more predetermined prefixes in the binary large object, invoke a first method of the one or more methods to obtain a result object, determine whether the result object has an object handler class or is a primitive data type, responsive to determining that the result object has the object handler class, use a class corresponding to the object handler class to represent a value for the first method, responsive to determining that the result object is a primitive data type, use the primitive data type to represent the value for the first method, and responsive to determining that the result object neither has the object handler class nor is a primitive data type, invoke a method of the result object, wherein the analyzing causes multiple object classes to be recursively traversed using the predetermined prefixes until the primitive data types or an object handler class are identified by the reflection code executed by the processor using the getters to retrieve row data for a virtual table, wherein the virtual table connects each of a plurality of geographic databases to a respective one of a plurality of scripts; modify a virtual table at runtime in response to the navigation query based on the object tree of the binary large object, the virtual table including data which corresponds to a mode of the plurality of modes, wherein the plurality of modes are a predetermined number of options for retrieving data from the binary large object in a particular order, wherein the virtual table links multiple scripts to multiple geographic databases; provide the virtual table to the application; and access the virtual table for data from the binary large object as stored in the virtual table as a response to the navigation query in order to perform a function of the application, wherein the navigation query is in structured query language and includes parameters for interpreting the binary large object and a mode used by the reflection code for retrieving data from the binary large object. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium including instructions that when executed by a processor are operable to:
-
receive a navigation query from an application for data stored as a binary large object of a plurality of binary large objects in a physical table, wherein each of the plurality of binary large objects is stored in a separate record in the geographic database; retrieve the binary large object from the physical table stored in the geographic database; provide the binary large object to an analyzer; analyze the binary large object at runtime using the analyzer, wherein (a) the analyzer uses a reflection code which operates in a plurality of modes to identify primitive data types or object handlers by searching for getters in the binary large object, (b) modifies its own structure at runtime based on an object tree of the binary large object, and (c) the analyzing comprises; identifying one or more methods having one of one or more predetermined prefixes in the binary large object, invoking a first method of the one or more methods to obtain a result object, determining whether the result object has an object handler class or is a primitive data type, responsive to determining that the result object has the object handler class, using a class corresponding to the object handler class to represent a value for the first method, responsive to determining that the result object is a primitive data type, using the primitive data type to represent the value for the first method, and responsive to determining that the result object neither has the object handler class nor is a primitive data type, invoking a method of the result object, wherein the analyzing causes multiple object classes to be recursively traversed using the predetermined prefixes until the primitive data types or an object handler class are identified by the reflection code executed by the processor using the getters to retrieve row data for a virtual table, wherein the virtual table connects each of a plurality of geographic databases to a respective one of a plurality of scripts; modify a virtual table at runtime in response to the navigation query based on the object tree of the binary large object, the virtual table including data which corresponds to a mode of the plurality of modes, wherein the plurality of modes are a predetermined number of options for retrieving data from the binary large object in a particular order, wherein the virtual table links multiple scripts to multiple geographic databases; provide the virtual table to the application; and access the virtual table for data from the binary large object as stored in the virtual table as a response to the navigation query in order to perform a function of the application, wherein the navigation query is in structured query language and includes parameters for interpreting the binary large object and a mode used by the reflection code for retrieving data from the binary large object. - View Dependent Claims (16, 17, 18, 19)
-
Specification