Patent attributes
Techniques and systems are disclosed for directly storing semistructured data in a database. According to one aspect, a client application reads data that comprises instances of a parent type. The client application invokes routines associated with the parent type. An array is created for storing instances of the parent type. These routines invoke routines associated with a child type of the parent type. An array is created for storing instances of the child type. The arrays are populated with values specified in the data. According to one aspect, some columns of the arrays may be populated with other values to be stored in hidden columns of database tables. The client application converts the arrays into a data stream that conforms to the format of the database's data blocks. The client application then streams the data to a database server, which writes the data blocks directly into one or more data blocks in the database.