MoonBit native delimited-text parser and data quality toolkit
pub(all) struct CellChange {
key : String
old_row_number : Int
new_row_number : Int
column : String
old_value : String
new_value : String
} derive(Eq)pub(all) struct ColumnChangeStats {
name : String
changed_cells : Int
old_only : Bool
new_only : Bool
} derive(Eq)pub(all) struct ColumnStats {
name : String
index : Int
row_count : Int
empty_count : Int
non_empty_count : Int
unique_count : Int
duplicate_count : Int
min_length : Int
max_length : Int
average_length : Int
} derive(Eq)pub(all) struct DialectGuess {
delimiter : Char
delimiter_name : String
confidence : Int
has_header : Bool
reason : String
config : ParseConfig
} derive(Eq)pub(all) struct FixSuggestion {
row : Int
column : String
code : String
suggestion : String
} derive(Eq)pub(all) struct ParseConfig {
delimiter : Char
quote : Char
has_header : Bool
trim_unquoted : Bool
skip_empty_lines : Bool
strict_columns : Bool
comment : Char?
} derive(Eq)pub(all) struct SchemaChange {
code : String
column : String
message : String
breaking : Bool
} derive(Eq)pub(all) struct SchemaCompatibilityReport {
compatible : Bool
breaking_changes : Int
non_breaking_changes : Int
changes : Array[SchemaChange]
} derive(Eq)fn Table::append_column(self : Table, name : String, default_value : String) -> Result[Table, TableTransformError]fn Table::fill_missing_in_column(self : Table, name : String, replacement : String) -> Result[Table, TableTransformError]fn Table::inner_join(self : Table, other : Table, left_key : String, right_key : String) -> Result[Table, TableTransformError]fn Table::quality_gate(self : Table, min_quality_score : Int, min_density_score : Int, required_columns : Array[String], reject_duplicates : Bool) -> QualityGateReportfn Table::rename_column(self : Table, from : String, to : String) -> Result[Table, TableTransformError]fn Table::rename_columns(self : Table, renames : Array[(String, String)]) -> Result[Table, TableTransformError]fn Table::replace_column_values(self : Table, name : String, values : Array[String]) -> Result[Table, TableTransformError]fn Table::value_counts(self : Table, name : String) -> Result[Array[(String, Int)], TableTransformError]pub(all) struct TableDiffReport {
key_columns : Array[String]
compared_columns : Array[String]
old_only_columns : Array[String]
new_only_columns : Array[String]
added_rows : Array[RowAddition]
removed_rows : Array[RowRemoval]
changed_cells : Array[CellChange]
unchanged_rows : Int
duplicate_keys : Array[DuplicateKeyReport]
missing_key_rows_old : Array[Int]
missing_key_rows_new : Array[Int]
change_score : Int
} derive(Eq)fn TableDiffReport::changes_for_column(self : TableDiffReport, column : String) -> Array[CellChange]fn TableDiffReport::gate(self : TableDiffReport, max_changed_cells : Int, allow_removed_rows : Bool, allow_column_drift : Bool) -> DiffGateReportfn TableDiffReport::most_changed_columns(self : TableDiffReport, limit : Int) -> Array[ColumnChangeStats]pub(all) struct TableProfile {
row_count : Int
column_count : Int
empty_cells : Int
quality_score : Int
columns : Array[ColumnProfile]
} derive(Eq)pub(all) struct TableStats {
row_count : Int
column_count : Int
cell_count : Int
empty_cells : Int
non_empty_cells : Int
density_score : Int
duplicate_row_count : Int
columns : Array[ColumnStats]
} derive(Eq)pub(all) struct ValidationError {
row : Int
column : String
code : String
message : String
} derive(Eq)fn diff_tables_by_key(old_table : Table, new_table : Table, key_columns : Array[String]) -> Result[TableDiffReport, TableDiffError]fn table_diff_by_key(old_table : Table, new_table : Table, key_columns : Array[String]) -> Result[TableDiffReport, TableDiffError]MoonBit native delimited-text parser and data quality toolkit