US 11,893,025 B2
Scan set pruning for queries with predicates on semi-structured fields
Mahmud Allahverdiyev, Berlin (DE); Thierry Cruanes, San Mateo, CA (US); Ismail Oukid, Berlin (DE); and Stefan Richter, Berlin (DE)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on Oct. 18, 2022, as Appl. No. 18/047,595.
Application 18/047,595 is a continuation of application No. 17/655,124, filed on Mar. 16, 2022, granted, now 11,494,384.
Application 17/655,124 is a continuation of application No. 17/394,149, filed on Aug. 4, 2021, granted, now 11,308,090.
Application 17/394,149 is a continuation in part of application No. 17/358,154, filed on Jun. 25, 2021, granted, now 11,308,089.
Application 17/358,154 is a continuation of application No. 17/161,115, filed on Jan. 28, 2021, granted, now 11,086,875.
Application 17/161,115 is a continuation of application No. 16/932,462, filed on Jul. 17, 2020, granted, now 10,942,925.
Application 16/932,462 is a continuation of application No. 16/727,315, filed on Dec. 26, 2019, granted, now 10,769,150.
Claims priority of provisional application 63/197,750, filed on Jun. 7, 2021.
Prior Publication US 2023/0064151 A1, Mar. 2, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/24 (2019.01); G06F 16/2455 (2019.01); G06F 16/9035 (2019.01); G06F 16/28 (2019.01); G06F 17/18 (2006.01); G06F 16/22 (2019.01)
CPC G06F 16/24557 (2019.01) [G06F 16/2272 (2019.01); G06F 16/283 (2019.01); G06F 16/9035 (2019.01); G06F 17/18 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving a query including a predicate directed at semi-structured data in a table organized into a set of batch units;
generating one or more indexing transformations based on a value in the predicate, the generating of the one or more indexing transformations comprising executing a cast function on the value in the predicate to convert the value from a first data type to a second data type;
pruning, using a pruning index, the set of batch units based on the one or more indexing transformations, the pruning index comprising a set of filters that index distinct values in each column of the table; and
processing the query by scanning a subset of batch units resulting from pruning the set of batch units.