PERFORMING AN EFFICIENT IMPLICIT JOIN OF MULTIPLE MIXED-TYPE RECORDS
First Claim
1. A method for retrieving data, the method comprising:
- retrieving a plurality of records from a hierarchical database, the plurality of records categorized into a plurality of record types, each record included in the plurality of records comprising a unique identifier field;
iterating over each record included in the retrieved plurality of records, wherein iterating over each record is performed at a computer;
for each record for which a value contained in the unique identifier field is not included in a record map, creating an entry in the record map, the created entry comprising the value contained in the unique identifier field, a subset of the record and a set of flags, each flag included in the set of flags corresponding to a record type, wherein each flag included in the set of flags is set to a first Boolean value if the record is of the type corresponding to the flag and a second Boolean value if the record is not of the type corresponding to the flag; and
for each record for which the value contained in the unique identifier field is included in an existing entry in the record map, adding a subset of the record to the existing entry and setting the flag included in the existing entry and corresponding to the record type of the record to the first Boolean value.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, method and computer program product for retrieving data. Records are retrieved from a hierarchical database. The records are categorized into a plurality of record types. Each record comprises a unique identifier field. A record map contains zero or more entries. Each entry comprises an identifying value, data from at least one record and a set of Boolean flags. Each flag corresponds to a record type. A computer iterates over the retrieved records. Data from each record is stored at an entry in the record map having an identifying value equal to the value included in the unique identifier field of the record. Moreover, the flag in this entry which corresponds to the record type of the record is set. Inner joins and outer joins are then performed using the contents of the record map.
-
Citations
20 Claims
-
1. A method for retrieving data, the method comprising:
-
retrieving a plurality of records from a hierarchical database, the plurality of records categorized into a plurality of record types, each record included in the plurality of records comprising a unique identifier field; iterating over each record included in the retrieved plurality of records, wherein iterating over each record is performed at a computer; for each record for which a value contained in the unique identifier field is not included in a record map, creating an entry in the record map, the created entry comprising the value contained in the unique identifier field, a subset of the record and a set of flags, each flag included in the set of flags corresponding to a record type, wherein each flag included in the set of flags is set to a first Boolean value if the record is of the type corresponding to the flag and a second Boolean value if the record is not of the type corresponding to the flag; and for each record for which the value contained in the unique identifier field is included in an existing entry in the record map, adding a subset of the record to the existing entry and setting the flag included in the existing entry and corresponding to the record type of the record to the first Boolean value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for retrieving data, the system comprising:
-
a retrieving unit configured to retrieve a plurality of records from a hierarchical database, the plurality of records categorized into a plurality of record types, each record included in the plurality of records comprising a unique identifier field; a record map, the record map containing zero or more entries, wherein each entry stored at the record map comprises an identifying value, a subset of at least one record and a set of flags, each flag included in the set of flags corresponding to a record type; and a processor configured to; iterate over each record included in the plurality of records retrieved by the retrieving unit; for each record for which a value contained in the unique identifier field is not included in a record map, create an entry in the record map, the created entry comprising the value contained in the unique identifier field, a subset of the record and a set of flags, each flag included in the set of flags corresponding to a record type, wherein each flag included in the set of flags is set to a first Boolean value if the record is of the type corresponding to the flag and a second Boolean value if the record is not of the type corresponding to the flag; and for each record for which the value contained in the unique identifier field is included in an existing entry in the record map, add a subset of the record to the existing entry and set the flag included in the existing entry and corresponding to the record type of the record to the first Boolean value. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer program product embodied in a computer usable memory comprising:
-
computer readable program codes coupled to the computer usable memory for retrieving data, the computer readable program codes configured to cause the program to; retrieve a plurality of records from a hierarchical database, the plurality of records categorized into a plurality of record types, each record included in the plurality of records comprising a unique identifier field; iterate over each record included in the retrieved plurality of records; for each record for which a value contained in the unique identifier field is not included in a record map, create an entry in the record map, the created entry comprising the value contained in the unique identifier field, a subset of the record and a set of flags, each flag included in the set of flags corresponding to a record type, wherein each flag included in the set of flags is set to a first Boolean value if the record is of the type corresponding to the flag and a second Boolean value if the record is not of the type corresponding to the flag; and for each record for which the value contained in the unique identifier field is included in an existing entry in the record map, add a subset of the record to the existing entry and set the flag included in the existing entry and corresponding to the record type of the record to the first Boolean value. - View Dependent Claims (17, 18, 19, 20)
-
Specification