IP Library › Patent Application 19205210
Patent Application
App. No. 19/205,210

UNIFIED STRUCTURED AND SEMI-STRUCTURED DATA TYPES IN DATABASE SYSTEMS

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 None
App. No.
19/205,210
Abstract

The subject technology receives a first semi-structured object. The subject technology iterates through a list of fields specified by a target object type. The subject technology, for each field, determines whether a field with a same name is present in the first semi-structured object. The subject technology, in response to the field being found in the first semi-structured object, converts a value of the field to a target field type according to defined type conversion rules. The subject technology stores the converted value in a unified representation comprising a data structure that stores both structured and semi-structured data types. The subject technology processes a query using the unified representation.

Claims (82)

1 . A system comprising:

at least one hardware processor; and

a memory storing instructions that cause the at least one hardware processor to perform operations comprising:

receiving a first semi-structured object;

iterating through a list of fields specified by a target object type;

for each field, determining whether a field with a same name is present in the first semi-structured object;

in response to the field being found in the first semi-structured object, converting a value of the field to a target field type according to defined type conversion rules;

storing the converted value in a unified representation comprising a data structure that stores both structured and semi-structured data types; and

processing a query using the unified representation.

2 . The system of claim 1 , wherein the unified representation being provided in storage and in memory during query processing, the unified representation comprising a set of structured type fields that include a set of semi-structured typed fields that enables type validation and schema enforcement for the set of structured type fields.

3 . The system of claim 2 , wherein the unified representation is stored in the memory, wherein the unified representation enables seamless integration between structured and semi-structured data types through unified SQL interface operations.

4 . The system of claim 1 , wherein converting the value of the field to the target field type comprises:

determining that the field contains a JSON null value;

determining that the target field type does not support JSON nulls; and

converting the JSON null value to a NULL value in the target field type.

5 . The system of claim 1 , wherein the operations further comprise:

receiving a set of query results based on processing the query;

serializing the query results into a JSON string format for structured object fields in an order specified by a schema; and

converting JSON nulls to missing values when converting a semi-structured array to a structured array.

6 . The system of claim 1 , wherein storing the converted field values comprises:

storing the unified representation as native data types;

implementing type coercion rules for the converted field values; and

adding internal cast functions to support casting from semi-structured to structured types.

7 . The system of claim 1 , wherein the operations further comprise:

collecting metadata for the converted field values;

pushing down extraction expressions to table scans as virtual columns; and

performing compile-time optimizations based on the collected metadata for structured type fields.

8 . The system of claim 1 , wherein the unified representation comprises:

a data structure that maintains type information for semi-structured data as part of the semi-structured data;

field definitions that enable type validation during query processing; and

schema information that allows new attributes to be added to semi-structured fields at a subsequent time.

9 . The system of claim 1 , wherein processing the query comprises:

identifying extractions on Structured type columns;

representing the extractions as virtual columns;

retrieving and populating expression properties (EPs) for structured type fields; and

applying EP-based compile-time optimizations to the query processing.

10 . The system of claim 1 , wherein processing the query comprises:

generating extraction expressions for structured type fields;

pushing the extraction expressions into table scans as virtual columns;

collecting expression properties (EPs) for the virtual columns; and

performing data-dependent optimizations based on the collected EPs.

11 . A method comprising:

receiving a first semi-structured object;

iterating through a list of fields specified by a target object type;

for each field, determining whether a field with a same name is present in the first semi-structured object;

in response to the field being found in the first semi-structured object, converting a value of the field to a target field type according to defined type conversion rules;

storing the converted value in a unified representation comprising a data structure that stores both structured and semi-structured data types; and

processing a query using the unified representation.

12 . The method of claim 11 , wherein the unified representation being provided in storage and in memory during query processing, the unified representation comprising a set of structured type fields that include a set of semi-structured typed fields that enables type validation and schema enforcement for the set of structured type fields.

13 . The method of claim 12 , wherein the unified representation is stored in the memory, wherein the unified representation enables seamless integration between structured and semi-structured data types through unified SQL interface operations.

14 . The method of claim 11 , wherein converting the value of the field to the target field type comprises:

determining that the field contains a JSON null value;

determining that the target field type does not support JSON nulls; and

converting the JSON null value to a NULL value in the target field type.

15 . The method of claim 11 , further comprising:

receiving a set of query results based on processing the query;

serializing the query results into a JSON string format for structured object fields in an order specified by a schema; and

converting JSON nulls to missing values when converting a semi-structured array to a structured array.

16 . The method of claim 11 , wherein storing the converted field values comprises:

storing the unified representation as native data types;

implementing type coercion rules for the converted field values; and

adding internal cast functions to support casting from semi-structured to structured types.

17 . The method of claim 11 , further comprising:

collecting metadata for the converted field values;

pushing down extraction expressions to table scans as virtual columns; and

performing compile-time optimizations based on the collected metadata for structured type fields.

18 . The method of claim 11 , wherein the unified representation comprises:

a data structure that maintains type information for semi-structured data as part of the semi-structured data;

field definitions that enable type validation during query processing; and

schema information that allows new attributes to be added to semi-structured fields at a subsequent time.

19 . The method of claim 11 , wherein processing the query comprises:

identifying extractions on Structured type columns;

representing the extractions as virtual columns;

retrieving and populating expression properties (EPs) for structured type fields; and

applying EP-based compile-time optimizations to the query processing.

20 . A non-transitory computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

receiving a first semi-structured object;

iterating through a list of fields specified by a target object type;

for each field, determining whether a field with a same name is present in the first semi-structured object;

in response to the field being found in the first semi-structured object, converting a value of the field to a target field type according to defined type conversion rules;

storing the converted value in a unified representation comprising a data structure that stores both structured and semi-structured data types; and

processing a query using the unified representation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2025
From: CAI, XINZHU; CHEN, BOWEI; GAUR, PRATEEK; LYCHAGIN, DMITRY A.; MUTHURAMAN, MUTHUNAGAPPAN; PENG, ZHUO; WANG, MENGRAN; YAN, JIAQI
To: SNOWFLAKE INC.
Reel/Frame 071089/0589 →