US 12,001,414 B2
ROWID decoding: an alternative to dictionary decoding
Pit Fender, Union City, CA (US); Benjamin Schlegel, Merced, CA (US); and Matthias Brantner, Sunnyvale, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Jun. 2, 2022, as Appl. No. 17/831,117.
Application 17/831,117 is a continuation of application No. 16/697,431, filed on Nov. 27, 2019, granted, now 11,392,566.
Prior Publication US 2022/0292066 A1, Sep. 15, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/22 (2019.01); G06F 16/242 (2019.01); G06F 16/2455 (2019.01); G06F 40/242 (2020.01)
CPC G06F 16/221 (2019.01) [G06F 16/242 (2019.01); G06F 16/24553 (2019.01); G06F 40/242 (2020.01)] 8 Claims
OG exemplary drawing
 
1. A method comprising:
generating a query execution plan (QEP) for a query that specifies to aggregate a particular column by at least one group column, wherein said QEP comprises:
a first plan operator that generates rows from a base table and a rowid pseudo column, wherein said rowid pseudo column returns rowids that each encode a storage location of a respective row in a data block of a database;
a group by plan operator that is higher than said first plan operator and that groups by at least one group column;
an aggregate operator that applies an aggregate function to said rowid pseudo column, wherein said aggregate operator is higher than said group by plan operator;
a RIDDecode operator that is higher than said aggregate operator, wherein said RIDDecode operator is configured to retrieve a value for said at least one group column using a rowid from said rowid pseudo column;
wherein generating said QEP includes:
including said rowid pseudo column, said at least one group column, and said particular column in a projection list for said first plan operator;
substituting said at least one group column with said rowid pseudo column in a projection list for said group by operator;
executing said RIDDecode operator while executing said QEP.