diff --git a/crates/bindings-typescript/src/lib/schema.ts b/crates/bindings-typescript/src/lib/schema.ts index 22ff25256d0..fed510ba74f 100644 --- a/crates/bindings-typescript/src/lib/schema.ts +++ b/crates/bindings-typescript/src/lib/schema.ts @@ -91,7 +91,10 @@ export function tableToSchema< type AllowedCol = keyof T['rowType']['row'] & string; return { - sourceName: accName, + // For client,`schama.tableName` will always be there as canonical name. + // For module, if explicit name is not provided via `name`, accessor name will + // be used, it is stored as alias in database, hence works in query builder. + sourceName: schema.tableName || accName, accessorName: accName, columns: schema.rowType.row, // typed as T[i]['rowType']['row'] under TablesToSchema rowType: schema.rowSpacetimeType, diff --git a/crates/codegen/src/rust.rs b/crates/codegen/src/rust.rs index ea28bbc5ccf..bd7a2e147ec 100644 --- a/crates/codegen/src/rust.rs +++ b/crates/codegen/src/rust.rs @@ -671,7 +671,7 @@ pub struct {cols_struct} {{" )?; for element in &product_def.elements { - let field_name = &element.0; + let field_name = &element.0.deref().to_case(Case::Snake); let field_type = type_name(module, &element.1); writeln!( out, @@ -690,7 +690,7 @@ impl __sdk::__query_builder::HasCols for {struct_name} {{ {cols_struct} {{" )?; for element in &product_def.elements { - let field_name = &element.0; + let field_name = &element.0.deref().to_case(Case::Snake); writeln!( out, " {field_name}: __sdk::__query_builder::Col::new(table_name, {field_name:?}),"