:py:mod:`dissect.database.sqlite3.util` ======================================= .. py:module:: dissect.database.sqlite3.util Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: :nosignatures: dissect.database.sqlite3.util.split_sql_list dissect.database.sqlite3.util.parse_table_columns_constraints dissect.database.sqlite3.util.split_column_def dissect.database.sqlite3.util.get_primary_key_from_constraint .. py:function:: split_sql_list(sql: str) -> collections.abc.Iterator[str] Split a string on comma's (``,``) while ignoring any comma's contained within an arbitrary level of nested braces (``( )``). .. py:function:: parse_table_columns_constraints(sql: str) -> tuple[str | None, list[str], list[str]] Parse ``SQL CREATE TABLE`` statements and return the primary key, column definitions and table constraints. The retrun value is a tuple of: (primary_key, [column, ...], [table_constraint, ...]) where column is a tuple of: (column_name, column_type_constraint) .. py:function:: split_column_def(sql: str, column_def: str) -> tuple[str, str] Splits the column definition to name and constraint. .. py:function:: get_primary_key_from_constraint(column_type_constraint: str, column_def: str, sql: str) -> str | None Finds a primary key from sql string.