Skip to content

Typo in C API header signatures for UInt binding functions causes error  #2105

@amauryt

Description

@amauryt

What does happen?

I'm working on DuckDB bindings for the Crystal language using the C API when I got the following error:

Undefined symbols for architecture x86_64:
  "_duckdb_bind_uint16", referenced from:
      _*DuckDB::Statement#bind_arg<Int32, UInt16>:Nil in D-uckD-B-5858S-tatement.o
  "_duckdb_bind_uint8", referenced from:
      _*DuckDB::Statement#bind_arg<Int32, UInt8>:Nil in D-uckD-B-5858S-tatement.o

After a while I finally noticed a small typo on the C header file, as the binding functions for both uint16 and uint8 expect signed integers instead of unsigned ones as parameters.

What should happen?

The C API header binding functions should contain the expected signatures, i.e., uint8_t and uint16_t instead of int8_t and int16_t.

Environment (please complete the following information):

  • OS: MacOS 11.5 (Big Sur)
  • DuckDB Version 0.2.8

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions