From 586530a22ae21333b04abd8788ef90640d4ab52b Mon Sep 17 00:00:00 2001 From: Elliana May Date: Thu, 16 May 2024 15:34:26 +0800 Subject: [PATCH] add missing smallint functions --- src/main/capi/duckdb_value-c.cpp | 12 ++++++++++++ test/api/capi/test_capi_complex_types.cpp | 9 ++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/capi/duckdb_value-c.cpp b/src/main/capi/duckdb_value-c.cpp index 7be0695f16d8..5acf14bab568 100644 --- a/src/main/capi/duckdb_value-c.cpp +++ b/src/main/capi/duckdb_value-c.cpp @@ -52,6 +52,18 @@ duckdb_value duckdb_create_utinyint(uint8_t input) { uint8_t duckdb_get_utinyint(duckdb_value val) { return UnwrapValue(val).GetValue(); } +duckdb_value duckdb_create_smallint(int16_t input) { + return WrapValue(new duckdb::Value(duckdb::Value::SMALLINT(input))); +} +int16_t duckdb_get_smallint(duckdb_value val) { + return UnwrapValue(val).GetValue(); +} +duckdb_value duckdb_create_usmallint(uint16_t input) { + return WrapValue(new duckdb::Value(duckdb::Value::USMALLINT(input))); +} +uint16_t duckdb_get_usmallint(duckdb_value val) { + return UnwrapValue(val).GetValue(); +} duckdb_value duckdb_create_integer(int32_t input) { return WrapValue(new duckdb::Value(duckdb::Value::INTEGER(input))); } diff --git a/test/api/capi/test_capi_complex_types.cpp b/test/api/capi/test_capi_complex_types.cpp index 21717e598cfb..3fe1ffe31f3c 100644 --- a/test/api/capi/test_capi_complex_types.cpp +++ b/test/api/capi/test_capi_complex_types.cpp @@ -333,13 +333,16 @@ TEST_CASE("duckdb_create_value", "[capi]") { duckdb_destroy_value(&value); \ } - TEST_VALUE(duckdb_create_bigint(42), duckdb_get_bigint, 42); TEST_VALUE(duckdb_create_bool(true), duckdb_get_bool, true); - TEST_VALUE(duckdb_create_integer(42), duckdb_get_integer, 42); + TEST_VALUE(duckdb_create_tinyint(42), duckdb_get_tinyint, 42); TEST_VALUE(duckdb_create_utinyint(32), duckdb_get_utinyint, 32); - TEST_VALUE(duckdb_create_bigint(42), duckdb_get_bigint, 42); + TEST_VALUE(duckdb_create_smallint(42), duckdb_get_smallint, 42); + TEST_VALUE(duckdb_create_usmallint(42), duckdb_get_usmallint, 42); TEST_VALUE(duckdb_create_integer(42), duckdb_get_integer, 42); + TEST_VALUE(duckdb_create_uinteger(42), duckdb_get_uinteger, 42); + TEST_VALUE(duckdb_create_bigint(42), duckdb_get_bigint, 42); + TEST_VALUE(duckdb_create_ubigint(42), duckdb_get_ubigint, 42); TEST_VALUE(duckdb_create_float(42.0), duckdb_get_float, 42.0); TEST_VALUE(duckdb_create_double(42.0), duckdb_get_double, 42.0); /*