Skip to content

[BUG] snake_case_aliases: multi-word column VALUE is null (extraction keyed by wire name) #108

Description

@jeffreyaven

When config.snake_case_aliases: true, a response column whose snake alias differs
from the wire property name gets the correct snake column NAME but a null VALUE - the
DRM/projection extracts from the response item by the snake name while the data is
still keyed by the wire name. Single-word columns (snake == wire) are unaffected,
which is why it hides in simple cases.

Repro (stackql stackql_native_test mock, against alpha08)

Provider config has snake_case_aliases: true. The casing echo returns
{"VpcId": "...", "echoed_query": "..."}.

select vpc_id, echoed_query from stackql_native_test.casing.echo where VpcId = 'abc123';
-> | vpc_id | echoed_query        |
   | null   | VpcId=abc123        |     # vpc_id should be 'abc123'; echoed_query (single word) is fine

XML path, same gap (cidrBlock -> cidr_block):

select size, cidr_block from stackql_native_test.xml_ec2.volumes;
-> size projects (single word), cidr_block is null though the wire XML carries it.

Expected

A snake-aliased column should project the VALUE from its retained wire property name.
any-sdk getPropertiesColumns already keeps the wire name on the column's nested schema;
either emit the response data snake-keyed when the provider opts in, or have the
column carry the wire key so the consumer extracts by it.

Impact

Any real provider relying on snake_case_aliases (e.g. entra_id / AWS-native) returns
null for every multi-word field. Blocks meaningful value assertions in the stackql
xml_walker / casing robot suites.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions