๐Ÿงช Npgsql PostgreSQL Wire Protocol Test Report

Generated: 2025-09-05 13:28:06

Boilstream Version: 0.7.11

Executive Summary

7
Test Suites
198
Total Tests
148
Passed
2
Failed
๐Ÿฆ† 48
DuckDB Limitations

Overall Pass Rate: 98.7%

Test Index

Click to expand test index with reference numbers

ClientTypeParameter

  1. โœ… Binary format
  2. โœ… ClientType
  3. โœ… Complex query
  4. โœ… DATE comparison
  5. โœ… NULL parameters
  6. โœ… NUMERIC + BOOL
  7. โœ… TEXT + INT
  8. โœ… Type inference

DemoTypeTests

  1. โœ… bigint_samples
  2. โœ… blob_samples
  3. โœ… bool_samples
  4. โœ… date_samples
  5. โœ… decimal_samples
  6. โœ… double_samples
  7. โœ… enum_samples
  8. โœ… hugeint_samples
  9. โœ… int_samples
  10. โœ… interval_samples
  11. โœ… json_samples
  12. โœ… list_int_samples
  13. โœ… map_samples
  14. โœ… real_samples
  15. โœ… smallint_samples
  16. โœ… struct_samples
  17. โœ… time_samples
  18. โœ… timestamp_samples
  19. โœ… timestamptz_samples
  20. โœ… tinyint_samples
  21. โœ… ubigint_samples
  22. โœ… uinteger_samples
  23. โœ… usmallint_samples
  24. โœ… utinyint_samples
  25. โœ… uuid_samples
  26. โœ… varchar_samples

MetadataVerification

  1. โœ… ARRAY types
  2. โœ… BIT
  3. โœ… BLOB
  4. ๐Ÿฆ† CHAR with length
  5. โœ… DECIMAL with precision
  6. โœ… INTERVAL with precision
  7. โœ… NUMERIC with precision
  8. โœ… TIME
  9. โœ… TIMESTAMP
  10. ๐Ÿฆ† VARCHAR with length

ParameterTypeInference

  1. ๐Ÿฆ† "char"
  2. โœ… BIGINT
  3. ๐Ÿฆ† BIT VARYING(10)
  4. ๐Ÿฆ† BIT(8)
  5. โœ… BOOL
  6. โœ… BOOLEAN
  7. โœ… BOOLEAN[]
  8. ๐Ÿฆ† BOX
  9. โœ… BYTEA
  10. ๐Ÿฆ† CHAR(10)
  11. ๐Ÿฆ† CIDR
  12. ๐Ÿฆ† CIRCLE
  13. โœ… DATE
  14. ๐Ÿฆ† DATERANGE
  15. โœ… DOUBLE PRECISION
  16. โœ… HUGEINT
  17. ๐Ÿฆ† INET
  18. ๐Ÿฆ† INT4RANGE
  19. โœ… INTEGER
  20. โœ… INTEGER[]
  21. โœ… INTERVAL
  22. โœ… JSON
  23. โœ… JSONB
  24. ๐Ÿฆ† LINE
  25. ๐Ÿฆ† LSEG
  26. ๐Ÿฆ† MACADDR
  27. ๐Ÿฆ† MONEY
  28. โœ… NUMERIC
  29. ๐Ÿฆ† NUMRANGE
  30. ๐Ÿฆ† PATH
  31. ๐Ÿฆ† POINT
  32. ๐Ÿฆ† POLYGON
  33. โœ… REAL
  34. โŒ REGCLASS
  35. ๐Ÿฆ† REGTYPE
  36. โœ… SMALLINT
  37. โœ… TIME
  38. โœ… TIME WITH TIME ZONE
  39. โœ… TIMESTAMP
  40. โœ… TIMESTAMP WITH TIME ZONE
  41. ๐Ÿฆ† TSRANGE
  42. ๐Ÿฆ† TSTZRANGE
  43. โœ… UUID
  44. ๐Ÿฆ† XML

PostgresTypeCoverage

  1. โœ… BOOLEAN[]
  2. โœ… INTEGER[]
  3. โœ… NUMERIC[]
  4. โœ… TEXT[]
  5. โœ… BIT
  6. ๐Ÿฆ† BIT(8)
  7. โœ… BITSTRING
  8. โœ… BYTEA
  9. ๐Ÿฆ† VARBIT
  10. ๐Ÿฆ† VARBIT(16)
  11. โœ… BOOL
  12. โœ… BOOLEAN
  13. โœ… BIGINT
  14. โœ… BIGSERIAL
  15. โœ… DECIMAL
  16. โœ… DOUBLE PRECISION
  17. โœ… INTEGER
  18. โœ… NUMERIC
  19. โœ… NUMERIC(10,2)
  20. โœ… REAL
  21. โœ… SERIAL
  22. โœ… SMALLINT
  23. โœ… DATE
  24. โœ… INTERVAL
  25. โœ… TIME
  26. โœ… TIME WITH TIME ZONE
  27. โœ… TIMESTAMP
  28. โœ… TIMESTAMP WITH TIME ZONE
  29. ๐Ÿฆ† BOX
  30. ๐Ÿฆ† CIRCLE
  31. ๐Ÿฆ† LINE
  32. ๐Ÿฆ† LSEG
  33. ๐Ÿฆ† PATH
  34. ๐Ÿฆ† POINT
  35. ๐Ÿฆ† POLYGON
  36. โœ… JSON
  37. ๐Ÿฆ† JSONB
  38. ๐Ÿฆ† CIDR
  39. โœ… INET
  40. ๐Ÿฆ† MACADDR
  41. ๐Ÿฆ† MACADDR8
  42. โœ… FLOAT
  43. โœ… FLOAT4
  44. โœ… FLOAT8
  45. ๐Ÿฆ† MONEY
  46. โœ… OID
  47. ๐Ÿฆ† PG_LSN
  48. โœ… REGCLASS
  49. โœ… REGPROC
  50. ๐Ÿฆ† REGTYPE
  51. ๐Ÿฆ† TSQUERY
  52. ๐Ÿฆ† TSVECTOR
  53. ๐Ÿฆ† TXID_SNAPSHOT
  54. ๐Ÿฆ† XML
  55. โœ… BPCHAR
  56. โœ… CHAR
  57. โœ… CHAR(10)
  58. โœ… NAME
  59. โœ… TEXT
  60. โœ… VARCHAR
  61. โœ… VARCHAR(50)
  62. โœ… UUID

PreparedStatements

  1. โœ… Simple arithmetic with INTEGER parameters
  2. โœ… Binary: BOOLEAN[]
  3. โœ… Binary: DATE[]
  4. โœ… Binary: DOUBLE PRECISION[]
  5. โœ… Binary: INTEGER[]
  6. โŒ Binary: INTEGER[][] (2D)
  7. โœ… Binary: NUMERIC[]
  8. โœ… Binary: REAL[]
  9. โœ… Binary: TEXT[]
  10. โœ… Binary: TIMESTAMP[]
  11. โœ… Binary: UUID[]
  12. โœ… Binary: BOOLEAN (false)
  13. โœ… Binary: BOOLEAN (true)
  14. ๐Ÿฆ† Binary: BIT
  15. โœ… Binary: BYTEA
  16. โœ… Binary: DATE
  17. โœ… Binary: INTERVAL
  18. โœ… Binary: TIME
  19. โœ… Binary: TIMESTAMP
  20. โœ… Binary: TIMESTAMPTZ
  21. โœ… Binary: JSON
  22. โœ… Binary: JSONB
  23. ๐Ÿฆ† Binary: INET
  24. โœ… Binary: NULL INTEGER
  25. โœ… Binary: NULL TEXT
  26. โœ… Binary: NULL TIMESTAMP
  27. โœ… Binary: BIGINT
  28. โœ… Binary: DOUBLE PRECISION
  29. โœ… Binary: INTEGER
  30. โœ… Binary: NUMERIC
  31. โœ… Binary: NUMERIC(10,2)
  32. โœ… Binary: REAL
  33. โœ… Binary: SMALLINT
  34. ๐Ÿฆ† Binary: CHAR(10)
  35. โœ… Binary: NAME
  36. โœ… Binary: TEXT
  37. โœ… Binary: VARCHAR
  38. โœ… Binary: UUID
  39. โœ… DATE + INTERVAL
  40. โœ… REAL * DOUBLE
  41. โœ… SMALLINT + BIGINT
  42. โœ… TEXT || VARCHAR

WireProtocolMetadata

  1. โœ… Extended query protocol works without parameters
  2. โœ… TEXT parameter has no size limit (as expected)
  3. โœ… Schema implies correct typmod
  4. โœ… All critical metadata fields present after DISCARD ALL
  5. โœ… All values readable as System.Object
  6. โœ… Value readable

Suite Summary

Test SuiteTotalPassedFailedDuckDB LimitationsPass Rate
ClientTypeParameter 8 8 0 0 100.0%
DemoTypeTests 26 26 0 0 100.0%
WireProtocolMetadata 6 6 0 0 100.0%
MetadataVerification 10 8 0 2 100.0%
PostgresTypeCoverage 62 41 0 21 100.0%
PreparedStatements 42 38 1 3 97.4%
ParameterTypeInference 44 21 1 22 95.5%
Filter by status:

Test Suite Details

#Test NameStatusErrorDetails
1 Binary format โœ… passed -
  • output:
    • โœ… Binary format - NUMERIC prepared: 999.99 + 0.01 = 1000.0000000000
    • โœ… Binary format - INTEGER prepared: 100 * 3 = 300
2 ClientType โœ… passed -
  • output:
    • โœ… ClientType - NUMERIC without cast: 123.4500000000
    • โœ… ClientType - Arithmetic NUMERIC * 2: 50.5 * 2 = 101.0000000000
3 Complex query โœ… passed -
  • output: โœ… Complex query - filtered aggregation with 3 params:
4 DATE comparison โœ… passed -
  • output: โœ… DATE comparison: Result - True
5 NULL parameters โœ… passed -
  • output: โœ… NULL parameters - NUMERIC with COALESCE
6 NUMERIC + BOOL โœ… passed -
  • output: โœ… NUMERIC + BOOL: Result - 110.0000000000
7 TEXT + INT โœ… passed -
  • output: โœ… TEXT + INT: Result - Test-42
8 Type inference โœ… passed -
  • output:
    • โœ… Type inference - explicit NUMERIC division: 456.78 / 2 = 228.39
    • โœ… Type inference - CASE with NUMERIC param: 75 -> MEDIUM

General

#Test NameStatusErrorDetails
1 bigint_samples โœ… passed -
  • output:
    • โœ… bigint_samples: 10 rows
    • โœ… bigint_samples: Schema + 3 rows read successfully
    • โœ… bigint_samples: Schema + 3 rows read successfully
2 blob_samples โœ… passed -
  • output:
    • โœ… blob_samples: 10 rows
    • โœ… blob_samples: Schema + 3 rows read successfully
3 bool_samples โœ… passed -
  • output:
    • โœ… bool_samples: 10 rows
    • โœ… bool_samples: Schema + 3 rows read successfully
4 date_samples โœ… passed -
  • output:
    • โœ… date_samples: 10 rows
    • โœ… date_samples: Schema + 3 rows read successfully
5 decimal_samples โœ… passed -
  • output:
    • โœ… decimal_samples: 10 rows
    • โœ… decimal_samples: Schema + 3 rows read successfully
6 double_samples โœ… passed -
  • output:
    • โœ… double_samples: 10 rows
    • โœ… double_samples: Schema + 3 rows read successfully
7 enum_samples โœ… passed -
  • output:
    • โœ… enum_samples: 10 rows
    • โœ… enum_samples: Schema + 3 rows read successfully
8 hugeint_samples โœ… passed -
  • output:
    • โœ… hugeint_samples: 10 rows
    • โœ… hugeint_samples: Schema + 3 rows (HUGEINT: .NET Decimal limitation noted)
9 int_samples โœ… passed -
  • output:
    • โœ… int_samples: 10 rows
    • โœ… int_samples: Schema + 3 rows read successfully
10 interval_samples โœ… passed -
  • output:
    • โœ… interval_samples: 10 rows
    • โœ… interval_samples: Schema + 3 rows read successfully
11 json_samples โœ… passed -
  • output:
    • โœ… json_samples: 10 rows
    • โœ… json_samples: Schema + 3 rows read successfully
12 list_int_samples โœ… passed -
  • output:
    • โœ… list_int_samples: 10 rows
    • โœ… list_int_samples: Schema + 3 rows read successfully
13 map_samples โœ… passed -
  • output:
    • โœ… map_samples: 10 rows
    • โœ… map_samples: Schema + 3 rows read successfully
14 real_samples โœ… passed -
  • output:
    • โœ… real_samples: 10 rows
    • โœ… real_samples: Schema + 3 rows read successfully
15 smallint_samples โœ… passed -
  • output:
    • โœ… smallint_samples: 10 rows
    • โœ… smallint_samples: Schema + 3 rows read successfully
16 struct_samples โœ… passed -
  • output:
    • โœ… struct_samples: 10 rows
    • โœ… struct_samples: Schema + 3 rows read successfully
17 time_samples โœ… passed -
  • output:
    • โœ… time_samples: 10 rows
    • โœ… time_samples: Schema + 3 rows read successfully
18 timestamp_samples โœ… passed -
  • output:
    • โœ… timestamp_samples: 10 rows
    • โœ… timestamp_samples: Schema + 3 rows read successfully
19 timestamptz_samples โœ… passed -
  • output:
    • โœ… timestamptz_samples: 10 rows
    • โœ… timestamptz_samples: Schema + 3 rows read successfully
20 tinyint_samples โœ… passed -
  • output:
    • โœ… tinyint_samples: 10 rows
    • โœ… tinyint_samples: Schema + 3 rows read successfully
21 ubigint_samples โœ… passed -
  • output:
    • โœ… ubigint_samples: 10 rows
    • โœ… ubigint_samples: Schema + 3 rows read successfully
    • โœ… ubigint_samples: Schema + 3 rows read successfully
22 uinteger_samples โœ… passed -
  • output:
    • โœ… uinteger_samples: 10 rows
    • โœ… uinteger_samples: Schema + 3 rows read successfully
23 usmallint_samples โœ… passed -
  • output:
    • โœ… usmallint_samples: 10 rows
    • โœ… usmallint_samples: Schema + 3 rows read successfully
24 utinyint_samples โœ… passed -
  • output:
    • โœ… utinyint_samples: 10 rows
    • โœ… utinyint_samples: Schema + 3 rows read successfully
25 uuid_samples โœ… passed -
  • output:
    • โœ… uuid_samples: 10 rows
    • โœ… uuid_samples: Schema + 3 rows read successfully
26 varchar_samples โœ… passed -
  • output:
    • โœ… varchar_samples: 10 rows
    • โœ… varchar_samples: Schema + 3 rows read successfully

RowDescription Metadata

#Test NameStatusErrorDetails
1 ARRAY types โœ… passed -
  • query: SELECT ARRAY[1,2,3]::INT[] as int_array
2 BIT โœ… passed -
  • query: SELECT '101'::BIT as bit_col
3 BLOB โœ… passed -
  • query: SELECT '\xDEADBEEF'::BLOB as blob_col
4 CHAR with length ๐Ÿฆ† DuckDB Limitation DuckDB limitation: ColumnSize not supported for CHAR with length
  • query: SELECT 'test'::CHAR(10) as char_col
  • columnSize: -1
  • isDuckDBLimitation: True
5 DECIMAL with precision โœ… passed -
  • query: SELECT 123.45::DECIMAL(15,4) as decimal_col
6 INTERVAL with precision โœ… passed -
  • query: SELECT INTERVAL '1 day 2:03:04' as interval_col
7 NUMERIC with precision โœ… passed -
  • query: SELECT 123.45::NUMERIC(10,2) as numeric_col
8 TIME โœ… passed -
  • query: SELECT CURRENT_TIME as time_col
9 TIMESTAMP โœ… passed -
  • query: SELECT CURRENT_TIMESTAMP as timestamp_col
10 VARCHAR with length ๐Ÿฆ† DuckDB Limitation DuckDB limitation: ColumnSize not supported for VARCHAR with length
  • query: SELECT 'test'::VARCHAR(255) as varchar_col
  • columnSize: -1
  • isDuckDBLimitation: True

#Test NameStatusErrorDetails
1 "char" ๐Ÿฆ† DuckDB Limitation 🦆 "char" - DuckDB limitation: The NpgsqlDbType 'Char' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 "char" - DuckDB limitation: The NpgsqlDbType 'Char' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
2 BIGINT โœ… passed -
  • output: โœ… BIGINT - Parameter accepted, type: bigint
3 BIT VARYING(10) ๐Ÿฆ† DuckDB Limitation 🦆 BIT VARYING(10) - DuckDB limitation: The NpgsqlDbType 'Varbit' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 BIT VARYING(10) - DuckDB limitation: The NpgsqlDbType 'Varbit' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
4 BIT(8) ๐Ÿฆ† DuckDB Limitation 🦆 BIT(8) - DuckDB limitation: XX000: Prepared query execution failed: Failed to prepare statement: Parser Error: Type BIT does not support any modifiers!
  • output: 🦆 BIT(8) - DuckDB limitation: XX000: Prepared query execution failed: Failed to prepare statement: Parser Error: Type BIT does not support any modifiers!
  • isDuckDBLimitation: True
5 BOOL โœ… passed -
  • output: โœ… BOOL - Parameter accepted, type: boolean
6 BOOLEAN โœ… passed -
  • output: โœ… BOOLEAN - Parameter accepted, type: boolean
7 BOOLEAN[] โœ… passed -
  • output: โœ… BOOLEAN[] - Parameter accepted, type: boolean[]
8 BOX ๐Ÿฆ† DuckDB Limitation 🦆 BOX - DuckDB limitation: The NpgsqlDbType 'Box' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 BOX - DuckDB limitation: The NpgsqlDbType 'Box' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
9 BYTEA โœ… passed -
  • output: โœ… BYTEA - Parameter accepted, type: bytea
10 CHAR(10) ๐Ÿฆ† DuckDB Limitation 🦆 CHAR(10) - DuckDB limitation: The NpgsqlDbType 'Char' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 CHAR(10) - DuckDB limitation: The NpgsqlDbType 'Char' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
11 CIDR ๐Ÿฆ† DuckDB Limitation 🦆 CIDR - DuckDB limitation: The NpgsqlDbType 'Cidr' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 CIDR - DuckDB limitation: The NpgsqlDbType 'Cidr' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
12 CIRCLE ๐Ÿฆ† DuckDB Limitation 🦆 CIRCLE - DuckDB limitation: The NpgsqlDbType 'Circle' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 CIRCLE - DuckDB limitation: The NpgsqlDbType 'Circle' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
13 DATE โœ… passed -
  • output: โœ… DATE - Parameter accepted, type: date
14 DATERANGE ๐Ÿฆ† DuckDB Limitation 🦆 DATERANGE - DuckDB limitation: The NpgsqlDbType 'DateRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 DATERANGE - DuckDB limitation: The NpgsqlDbType 'DateRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
15 DOUBLE PRECISION โœ… passed -
  • output: โœ… DOUBLE PRECISION - Parameter accepted, type: double precision
16 HUGEINT โœ… passed -
  • output: โœ… HUGEINT - Parameter accepted, type: numeric
17 INET ๐Ÿฆ† DuckDB Limitation 🦆 INET - DuckDB limitation: The NpgsqlDbType 'Inet' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 INET - DuckDB limitation: The NpgsqlDbType 'Inet' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
18 INT4RANGE ๐Ÿฆ† DuckDB Limitation 🦆 INT4RANGE - DuckDB limitation: The NpgsqlDbType 'IntegerRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 INT4RANGE - DuckDB limitation: The NpgsqlDbType 'IntegerRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
19 INTEGER โœ… passed -
  • output: โœ… INTEGER - Parameter accepted, type: integer
20 INTEGER[] โœ… passed -
  • output: โœ… INTEGER[] - Parameter accepted, type: integer[]
21 INTERVAL โœ… passed -
  • output: โœ… INTERVAL - Parameter accepted, type: interval
22 JSON โœ… passed -
  • output: โœ… JSON - Parameter accepted, type: json
23 JSONB โœ… passed -
  • output: โœ… JSONB - Parameter accepted, type: json
24 LINE ๐Ÿฆ† DuckDB Limitation 🦆 LINE - DuckDB limitation: The NpgsqlDbType 'Line' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 LINE - DuckDB limitation: The NpgsqlDbType 'Line' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
25 LSEG ๐Ÿฆ† DuckDB Limitation 🦆 LSEG - DuckDB limitation: The NpgsqlDbType 'LSeg' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 LSEG - DuckDB limitation: The NpgsqlDbType 'LSeg' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
26 MACADDR ๐Ÿฆ† DuckDB Limitation 🦆 MACADDR - DuckDB limitation: The NpgsqlDbType 'MacAddr' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 MACADDR - DuckDB limitation: The NpgsqlDbType 'MacAddr' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
27 MONEY ๐Ÿฆ† DuckDB Limitation 🦆 MONEY - DuckDB limitation: XX000: Prepared query execution failed: Failed to prepare statement: Catalog Error: Type with name MONEY does not exist!
  • output: 🦆 MONEY - DuckDB limitation: XX000: Prepared query execution failed: Failed to prepare statement: Catalog Error: Type with name MONEY does not exist!
  • isDuckDBLimitation: True
28 NUMERIC โœ… passed -
  • output: โœ… NUMERIC - Parameter accepted, type: numeric(18, 3)
29 NUMRANGE ๐Ÿฆ† DuckDB Limitation 🦆 NUMRANGE - DuckDB limitation: The NpgsqlDbType 'NumericRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 NUMRANGE - DuckDB limitation: The NpgsqlDbType 'NumericRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
30 PATH ๐Ÿฆ† DuckDB Limitation 🦆 PATH - DuckDB limitation: The NpgsqlDbType 'Path' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 PATH - DuckDB limitation: The NpgsqlDbType 'Path' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
31 POINT ๐Ÿฆ† DuckDB Limitation 🦆 POINT - DuckDB limitation: The NpgsqlDbType 'Point' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 POINT - DuckDB limitation: The NpgsqlDbType 'Point' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
32 POLYGON ๐Ÿฆ† DuckDB Limitation 🦆 POLYGON - DuckDB limitation: The NpgsqlDbType 'Polygon' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 POLYGON - DuckDB limitation: The NpgsqlDbType 'Polygon' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
33 REAL โœ… passed -
  • output: โœ… REAL - Parameter accepted, type: real
34 REGCLASS โŒ failed XX000: Prepared query execution failed: {"exception_type":"Invalid Input","exception_message":"Invalid unicode (byte sequence mismatch) detected in value construction"}
  • output: โŒ REGCLASS - Error: XX000: Prepared query execution failed: {"exception_type":"Invalid Input","exception_message":"Invalid unicode (byte sequence mismatch) detected in value construction"}
35 REGTYPE ๐Ÿฆ† DuckDB Limitation 🦆 REGTYPE - DuckDB limitation: The NpgsqlDbType 'Regtype' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 REGTYPE - DuckDB limitation: The NpgsqlDbType 'Regtype' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
36 SMALLINT โœ… passed -
  • output: โœ… SMALLINT - Parameter accepted, type: smallint
37 TIME โœ… passed -
  • output: โœ… TIME - Parameter accepted, type: time without time zone
38 TIME WITH TIME ZONE โœ… passed -
  • output: โœ… TIME WITH TIME ZONE - Parameter accepted, type: time with time zone
39 TIMESTAMP โœ… passed -
  • output: โœ… TIMESTAMP - Parameter accepted, type: timestamp without time zone
40 TIMESTAMP WITH TIME ZONE โœ… passed -
  • output: โœ… TIMESTAMP WITH TIME ZONE - Parameter accepted, type: timestamp with time zone
41 TSRANGE ๐Ÿฆ† DuckDB Limitation 🦆 TSRANGE - DuckDB limitation: The NpgsqlDbType 'TimestampRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 TSRANGE - DuckDB limitation: The NpgsqlDbType 'TimestampRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
42 TSTZRANGE ๐Ÿฆ† DuckDB Limitation 🦆 TSTZRANGE - DuckDB limitation: The NpgsqlDbType 'TimestampTzRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • output: 🦆 TSTZRANGE - DuckDB limitation: The NpgsqlDbType 'TimestampTzRange' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • isDuckDBLimitation: True
43 UUID โœ… passed -
  • output: โœ… UUID - Parameter accepted, type: uuid
44 XML ๐Ÿฆ† DuckDB Limitation 🦆 XML - DuckDB limitation: XX000: Prepared query execution failed: Failed to prepare statement: Catalog Error: Type with name XML does not exist!
  • output: 🦆 XML - DuckDB limitation: XX000: Prepared query execution failed: Failed to prepare statement: Catalog Error: Type with name XML does not exist!
  • isDuckDBLimitation: True

Array

#Test NameStatusErrorDetails
1 BOOLEAN[] โœ… passed -
  • query: SELECT ARRAY[true,false]::BOOLEAN[] as test_col
  • dataTypeName: boolean[]
  • npgsqlType: System.Array
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
2 INTEGER[] โœ… passed -
  • query: SELECT ARRAY[1,2,3]::INTEGER[] as test_col
  • dataTypeName: integer[]
  • npgsqlType: System.Array
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
3 NUMERIC[] โœ… passed -
  • query: SELECT ARRAY[1.1,2.2,3.3]::NUMERIC[] as test_col
  • dataTypeName: numeric
  • npgsqlType: System.Decimal
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
4 TEXT[] โœ… passed -
  • query: SELECT ARRAY['a','b','c']::TEXT[] as test_col
  • dataTypeName: character varying[]
  • npgsqlType: System.Array
  • readable: True
  • supported: True
  • isDuckDBLimitation: False

Binary

#Test NameStatusErrorDetails
5 BIT โœ… passed -
  • query: SELECT '101'::BIT as test_col
  • dataTypeName: bit
  • npgsqlType: System.Collections.BitArray
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
6 BIT(8) ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Parser Error: Type BIT does not support any modifiers!
  • query: SELECT '10101010'::BIT(8) as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
7 BITSTRING โœ… passed -
  • query: SELECT '10101010'::BITSTRING as test_col
  • dataTypeName: bit
  • npgsqlType: System.Collections.BitArray
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
8 BYTEA โœ… passed -
  • query: SELECT '\x0123456789ABCDEF'::BYTEA as test_col
  • dataTypeName: bytea
  • npgsqlType: System.Byte[]
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
9 VARBIT ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name VARBIT does not exist!
  • query: SELECT '1010'::VARBIT as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
10 VARBIT(16) ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name VARBIT does not exist!
  • query: SELECT '1010101010101010'::VARBIT(16) as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True

Boolean

#Test NameStatusErrorDetails
11 BOOL โœ… passed -
  • query: SELECT 'false'::BOOL as test_col
  • dataTypeName: boolean
  • npgsqlType: System.Boolean
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
12 BOOLEAN โœ… passed -
  • query: SELECT 'true'::BOOLEAN as test_col
  • dataTypeName: boolean
  • npgsqlType: System.Boolean
  • readable: True
  • supported: True
  • isDuckDBLimitation: False

Core

#Test NameStatusErrorDetails
13 BIGINT โœ… passed -
  • query: SELECT '123456789'::BIGINT as test_col
  • dataTypeName: bigint
  • npgsqlType: System.Int64
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
14 BIGSERIAL โœ… passed -
  • query: SELECT 123::BIGINT as test_col
  • dataTypeName: bigint
  • npgsqlType: System.Int64
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
15 DECIMAL โœ… passed -
  • query: SELECT '123.45'::DECIMAL as test_col
  • dataTypeName: numeric(18, 3)
  • npgsqlType: System.Decimal
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
16 DOUBLE PRECISION โœ… passed -
  • query: SELECT '123.456789'::DOUBLE PRECISION as test_col
  • dataTypeName: double precision
  • npgsqlType: System.Double
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
17 INTEGER โœ… passed -
  • query: SELECT '12345'::INTEGER as test_col
  • dataTypeName: integer
  • npgsqlType: System.Int32
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
18 NUMERIC โœ… passed -
  • query: SELECT '123.45'::NUMERIC as test_col
  • dataTypeName: numeric(18, 3)
  • npgsqlType: System.Decimal
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
19 NUMERIC(10,2) โœ… passed -
  • query: SELECT '123.45'::NUMERIC(10,2) as test_col
  • dataTypeName: numeric(10, 2)
  • npgsqlType: System.Decimal
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
20 REAL โœ… passed -
  • query: SELECT '123.45'::REAL as test_col
  • dataTypeName: real
  • npgsqlType: System.Single
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
21 SERIAL โœ… passed -
  • query: SELECT 123::INTEGER as test_col
  • dataTypeName: integer
  • npgsqlType: System.Int32
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
22 SMALLINT โœ… passed -
  • query: SELECT '123'::SMALLINT as test_col
  • dataTypeName: smallint
  • npgsqlType: System.Int16
  • readable: True
  • supported: True
  • isDuckDBLimitation: False

DateTime

#Test NameStatusErrorDetails
23 DATE โœ… passed -
  • query: SELECT '2024-01-15'::DATE as test_col
  • dataTypeName: date
  • npgsqlType: System.DateOnly
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
24 INTERVAL โœ… passed -
  • query: SELECT '1 day'::INTERVAL as test_col
  • dataTypeName: interval
  • npgsqlType: System.TimeSpan
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
25 TIME โœ… passed -
  • query: SELECT '14:30:00'::TIME as test_col
  • dataTypeName: time without time zone
  • npgsqlType: System.TimeOnly
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
26 TIME WITH TIME ZONE โœ… passed -
  • query: SELECT '14:30:00+00'::TIME WITH TIME ZONE as test_col
  • dataTypeName: time with time zone
  • npgsqlType: System.DateTimeOffset
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
27 TIMESTAMP โœ… passed -
  • query: SELECT '2024-01-15 14:30:00'::TIMESTAMP as test_col
  • dataTypeName: timestamp without time zone
  • npgsqlType: System.DateTime
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
28 TIMESTAMP WITH TIME ZONE โœ… passed -
  • query: SELECT '2024-01-15 14:30:00+00'::TIMESTAMP WITH TIME ZONE as test_col
  • dataTypeName: timestamp with time zone
  • npgsqlType: System.DateTime
  • readable: True
  • supported: True
  • isDuckDBLimitation: False

Geometric

#Test NameStatusErrorDetails
29 BOX ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name BOX does not exist!
  • query: SELECT '((0,0),(1,1))'::BOX as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
30 CIRCLE ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name CIRCLE does not exist!
  • query: SELECT '<(0,0),1>'::CIRCLE as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
31 LINE ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name LINE does not exist!
  • query: SELECT '{1,2,3}'::LINE as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
32 LSEG ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name LSEG does not exist!
  • query: SELECT '[(0,0),(1,1)]'::LSEG as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
33 PATH ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name PATH does not exist!
  • query: SELECT '[(0,0),(1,1),(2,0)]'::PATH as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
34 POINT ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name POINT does not exist!
  • query: SELECT '(1,2)'::POINT as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
35 POLYGON ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name POLYGON does not exist!
  • query: SELECT '((0,0),(1,1),(2,0))'::POLYGON as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True

JSON

#Test NameStatusErrorDetails
36 JSON โœ… passed -
  • query: SELECT '{"key": "value"}'::JSON as test_col
  • dataTypeName: json
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
37 JSONB ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name JSONB does not exist!
  • query: SELECT '{"key": "value"}'::JSONB as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True

Network

#Test NameStatusErrorDetails
38 CIDR ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name CIDR does not exist!
  • query: SELECT '192.168.1.0/24'::CIDR as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
39 INET โœ… passed -
  • query: SELECT '192.168.1.1'::INET as test_col
  • dataTypeName: character varying
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
40 MACADDR ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name MACADDR does not exist!
  • query: SELECT '08:00:2b:01:02:03'::MACADDR as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
41 MACADDR8 ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name MACADDR8 does not exist!
  • query: SELECT '08:00:2b:01:02:03:04:05'::MACADDR8 as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True

Numeric

#Test NameStatusErrorDetails
42 FLOAT โœ… passed -
  • query: SELECT '123.45'::FLOAT as test_col
  • dataTypeName: real
  • npgsqlType: System.Single
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
43 FLOAT4 โœ… passed -
  • query: SELECT '123.45'::FLOAT4 as test_col
  • dataTypeName: real
  • npgsqlType: System.Single
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
44 FLOAT8 โœ… passed -
  • query: SELECT '123.45'::FLOAT8 as test_col
  • dataTypeName: double precision
  • npgsqlType: System.Double
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
45 MONEY ๐Ÿฆ† DuckDB Limitation XX000: Failed to prepare statement: Failed to prepare statement: Catalog Error: Type with name MONEY does not exist!
  • query: SELECT '$100.50'::MONEY as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True

Special

#Test NameStatusErrorDetails
46 OID โœ… passed -
  • query: SELECT '12345'::OID as test_col
  • dataTypeName: bigint
  • npgsqlType: System.Int64
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
47 PG_LSN ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name PG_LSN does not exist!
  • query: SELECT '0/12345678'::PG_LSN as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
48 REGCLASS โœ… passed -
  • query: SELECT 'pg_class'::REGCLASS as test_col
  • dataTypeName: bigint
  • npgsqlType: System.Int64
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
49 REGPROC โœ… passed -
  • query: SELECT 'now'::REGPROC as test_col
  • dataTypeName: bigint
  • npgsqlType: System.Int64
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
50 REGTYPE ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name REGTYPE does not exist!
  • query: SELECT 'integer'::REGTYPE as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
51 TSQUERY ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name TSQUERY does not exist!
  • query: SELECT 'fat & cat'::TSQUERY as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
52 TSVECTOR ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name TSVECTOR does not exist!
  • query: SELECT 'a fat cat'::TSVECTOR as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
53 TXID_SNAPSHOT ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name TXID_SNAPSHOT does not exist!
  • query: SELECT '10:20:10,14,15'::TXID_SNAPSHOT as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True
54 XML ๐Ÿฆ† DuckDB Limitation XX000: Schema query failed: C++ API Arrow query failed: Catalog Error: Type with name XML does not exist!
  • query: SELECT '<root>test</root>'::XML as test_col
  • dataTypeName: N/A
  • npgsqlType: N/A
  • readable: False
  • supported: False
  • isDuckDBLimitation: True

String

#Test NameStatusErrorDetails
55 BPCHAR โœ… passed -
  • query: SELECT 'test'::BPCHAR as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
56 CHAR โœ… passed -
  • query: SELECT 'a'::CHAR as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
57 CHAR(10) โœ… passed -
  • query: SELECT 'test'::CHAR(10) as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
58 NAME โœ… passed -
  • query: SELECT 'test_name'::NAME as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
59 TEXT โœ… passed -
  • query: SELECT 'test text'::TEXT as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
60 VARCHAR โœ… passed -
  • query: SELECT 'test'::VARCHAR as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False
61 VARCHAR(50) โœ… passed -
  • query: SELECT 'test'::VARCHAR(50) as test_col
  • dataTypeName: text
  • npgsqlType: System.String
  • readable: True
  • supported: True
  • isDuckDBLimitation: False

UUID

#Test NameStatusErrorDetails
62 UUID โœ… passed -
  • query: SELECT 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::UUID as test_col
  • dataTypeName: uuid
  • npgsqlType: System.Guid
  • readable: True
  • supported: True
  • isDuckDBLimitation: False

Basic Prepared Statements

#Test NameStatusErrorDetails
1 Simple arithmetic with INTEGER parameters โœ… passed -
  • query: SELECT $1::INTEGER + $2::INTEGER
  • parameters: [ 5, 3 ]
  • expected: 8
  • actual: 8

Binary Array Types

#Test NameStatusErrorDetails
2 Binary: BOOLEAN[] โœ… passed -
  • query: SELECT $1::BOOLEAN[]
  • dbType: -2147483646
  • valueType: Boolean[]
  • resultType: Array
  • dataTypeName: boolean[]
  • resultValue: System.Boolean[]
3 Binary: DATE[] โœ… passed -
  • query: SELECT $1::DATE[]
  • dbType: -2147483641
  • valueType: DateOnly[]
  • resultType: Array
  • dataTypeName: date[]
  • resultValue: System.DateOnly[]
4 Binary: DOUBLE PRECISION[] โœ… passed -
  • query: SELECT $1::DOUBLE PRECISION[]
  • dbType: -2147483640
  • valueType: Double[]
  • resultType: Array
  • dataTypeName: double precision[]
  • resultValue: System.Double[]
5 Binary: INTEGER[] โœ… passed -
  • query: SELECT $1::INTEGER[]
  • dbType: -2147483639
  • valueType: Int32[]
  • resultType: Array
  • dataTypeName: integer[]
  • resultValue: System.Int32[]
6 Binary: INTEGER[][] (2D) โŒ failed XX000: Unsupported List Datatype List(Field { name: "l", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} })
  • query: SELECT $1::INTEGER[][]
  • dbType: -2147483639
  • valueType: Int32[,]
  • exception: PostgresException
  • isPgwireLimitation: True
7 Binary: NUMERIC[] โœ… passed -
  • query: SELECT $1::NUMERIC[]
  • dbType: -2147483635
  • valueType: Decimal[]
  • resultType: Array
  • dataTypeName: numeric[]
  • resultValue: System.Decimal[]
8 Binary: REAL[] โœ… passed -
  • query: SELECT $1::REAL[]
  • dbType: -2147483631
  • valueType: Single[]
  • resultType: Array
  • dataTypeName: real[]
  • resultValue: System.Single[]
9 Binary: TEXT[] โœ… passed -
  • query: SELECT $1::TEXT[]
  • dbType: -2147483629
  • valueType: String[]
  • resultType: Array
  • dataTypeName: character varying[]
  • resultValue: System.String[]
10 Binary: TIMESTAMP[] โœ… passed -
  • query: SELECT $1::TIMESTAMP[]
  • dbType: -2147483627
  • valueType: DateTime[]
  • resultType: Array
  • dataTypeName: timestamp without time zone[]
  • resultValue: System.DateTime[]
11 Binary: UUID[] โœ… passed -
  • query: SELECT $1::UUID[]
  • dbType: -2147483621
  • valueType: Guid[]
  • resultType: Array
  • dataTypeName: uuid[]
  • resultValue: System.Guid[]

Binary Boolean Types

#Test NameStatusErrorDetails
12 Binary: BOOLEAN (false) โœ… passed -
  • query: SELECT $1::BOOLEAN
  • dbType: Boolean
  • valueType: Boolean
  • resultType: Boolean
  • dataTypeName: boolean
  • resultValue: False
13 Binary: BOOLEAN (true) โœ… passed -
  • query: SELECT $1::BOOLEAN
  • dbType: Boolean
  • valueType: Boolean
  • resultType: Boolean
  • dataTypeName: boolean
  • resultValue: True

Binary Data Types

#Test NameStatusErrorDetails
14 Binary: BIT ๐Ÿฆ† DuckDB Limitation XX000: Prepared query execution failed: {"exception_type":"Invalid Input","exception_message":"Invalid unicode (byte sequence mismatch) detected in value construction"}
  • query: SELECT $1::BIT
  • dbType: Bit
  • valueType: BitArray
  • exception: PostgresException
  • isDuckDBLimitation: True
15 Binary: BYTEA โœ… passed -
  • query: SELECT $1::BYTEA
  • dbType: Bytea
  • valueType: Byte[]
  • resultType: Byte[]
  • dataTypeName: bytea
  • resultValue: System.Byte[]

Binary DateTime Types

#Test NameStatusErrorDetails
16 Binary: DATE โœ… passed -
  • query: SELECT $1::DATE
  • dbType: Date
  • valueType: DateTime
  • resultType: DateOnly
  • dataTypeName: date
  • resultValue: 1/15/2024
17 Binary: INTERVAL โœ… passed -
  • query: SELECT $1::INTERVAL
  • dbType: Interval
  • valueType: TimeSpan
  • resultType: TimeSpan
  • dataTypeName: interval
  • resultValue: 1.01:30:00
18 Binary: TIME โœ… passed -
  • query: SELECT $1::TIME
  • dbType: Time
  • valueType: TimeSpan
  • resultType: TimeOnly
  • dataTypeName: time without time zone
  • resultValue: 2:30โ€ฏPM
19 Binary: TIMESTAMP โœ… passed -
  • query: SELECT $1::TIMESTAMP
  • dbType: Timestamp
  • valueType: DateTime
  • resultType: DateTime
  • dataTypeName: timestamp without time zone
  • resultValue: 1/15/2024 2:30:00โ€ฏPM
20 Binary: TIMESTAMPTZ โœ… passed -
  • query: SELECT $1::TIMESTAMPTZ
  • dbType: TimestampTz
  • valueType: DateTime
  • resultType: DateTime
  • dataTypeName: timestamp with time zone
  • resultValue: 1/15/2024 2:30:00โ€ฏPM

Binary JSON Types

#Test NameStatusErrorDetails
21 Binary: JSON โœ… passed -
  • query: SELECT $1::JSON
  • dbType: Json
  • valueType: String
  • resultType: String
  • dataTypeName: json
  • resultValue: {"key": "value", "number": 42}
22 Binary: JSONB โœ… passed -
  • query: SELECT $1::JSONB
  • dbType: Jsonb
  • valueType: String
  • resultType: String
  • dataTypeName: json
  • resultValue: {"key": "value", "number": 42}

Binary Network Types

#Test NameStatusErrorDetails
23 Binary: INET ๐Ÿฆ† DuckDB Limitation The NpgsqlDbType 'Inet' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • query: SELECT $1::INET
  • dbType: Inet
  • valueType: IPAddress
  • exception: NotSupportedException
  • isDuckDBLimitation: True

Binary NULL Types

#Test NameStatusErrorDetails
24 Binary: NULL INTEGER โœ… passed -
  • query: SELECT $1::INTEGER
  • dbType: Integer
  • valueType: DBNull
  • resultType: Int32
  • dataTypeName: integer
  • resultValue:
25 Binary: NULL TEXT โœ… passed -
  • query: SELECT $1::TEXT
  • dbType: Text
  • valueType: DBNull
  • resultType: String
  • dataTypeName: character varying
  • resultValue:
26 Binary: NULL TIMESTAMP โœ… passed -
  • query: SELECT $1::TIMESTAMP
  • dbType: Timestamp
  • valueType: DBNull
  • resultType: DateTime
  • dataTypeName: timestamp without time zone
  • resultValue:

Binary Numeric Types

#Test NameStatusErrorDetails
27 Binary: BIGINT โœ… passed -
  • query: SELECT $1::BIGINT
  • dbType: Bigint
  • valueType: Int64
  • resultType: Int64
  • dataTypeName: bigint
  • resultValue: 123456789
28 Binary: DOUBLE PRECISION โœ… passed -
  • query: SELECT $1::DOUBLE PRECISION
  • dbType: Double
  • valueType: Double
  • resultType: Double
  • dataTypeName: double precision
  • resultValue: 123.456789
29 Binary: INTEGER โœ… passed -
  • query: SELECT $1::INTEGER
  • dbType: Integer
  • valueType: Int32
  • resultType: Int32
  • dataTypeName: integer
  • resultValue: 12345
30 Binary: NUMERIC โœ… passed -
  • query: SELECT $1::NUMERIC
  • dbType: Numeric
  • valueType: Decimal
  • resultType: Decimal
  • dataTypeName: numeric(18, 3)
  • resultValue: 123.450
31 Binary: NUMERIC(10,2) โœ… passed -
  • query: SELECT $1::NUMERIC(10,2)
  • dbType: Numeric
  • valueType: Decimal
  • resultType: Decimal
  • dataTypeName: numeric(10, 2)
  • resultValue: 123.45
32 Binary: REAL โœ… passed -
  • query: SELECT $1::REAL
  • dbType: Real
  • valueType: Single
  • resultType: Single
  • dataTypeName: real
  • resultValue: 123.45
33 Binary: SMALLINT โœ… passed -
  • query: SELECT $1::SMALLINT
  • dbType: Smallint
  • valueType: Int16
  • resultType: Int16
  • dataTypeName: smallint
  • resultValue: 123

Binary String Types

#Test NameStatusErrorDetails
34 Binary: CHAR(10) ๐Ÿฆ† DuckDB Limitation The NpgsqlDbType 'Char' isn't present in your database. You may need to install an extension or upgrade to a newer version.
  • query: SELECT $1::CHAR(10)
  • dbType: Char
  • valueType: String
  • exception: NotSupportedException
  • isDuckDBLimitation: True
35 Binary: NAME โœ… passed -
  • query: SELECT $1::NAME
  • dbType: Name
  • valueType: String
  • resultType: String
  • dataTypeName: character varying
  • resultValue: test_name
36 Binary: TEXT โœ… passed -
  • query: SELECT $1::TEXT
  • dbType: Text
  • valueType: String
  • resultType: String
  • dataTypeName: character varying
  • resultValue: Hello, World!
37 Binary: VARCHAR โœ… passed -
  • query: SELECT $1::VARCHAR
  • dbType: Varchar
  • valueType: String
  • resultType: String
  • dataTypeName: character varying
  • resultValue: Test string

Binary UUID Types

#Test NameStatusErrorDetails
38 Binary: UUID โœ… passed -
  • query: SELECT $1::UUID
  • dbType: Uuid
  • valueType: Guid
  • resultType: Guid
  • dataTypeName: uuid
  • resultValue: 550e8400-e29b-41d4-a716-446655440000

Mixed Type Parameters

#Test NameStatusErrorDetails
39 DATE + INTERVAL โœ… passed -
  • query: SELECT $1::DATE + $2::INTERVAL
  • parameters: [ "2025-09-05T00:00:00+03:00", "1.00:00:00" ]
  • parameterTypes: [ "Date", "Interval" ]
  • result: 9/6/2025 12:00:00โ€ฏAM
40 REAL * DOUBLE โœ… passed -
  • query: SELECT $1::REAL * $2::DOUBLE PRECISION
  • parameters: [ 2.5, 3 ]
  • parameterTypes: [ "Real", "Double" ]
  • result: 7.5
41 SMALLINT + BIGINT โœ… passed -
  • query: SELECT $1::SMALLINT + $2::BIGINT
  • parameters: [ 10, 1000000 ]
  • parameterTypes: [ "Smallint", "Bigint" ]
  • result: 1000010
42 TEXT || VARCHAR โœ… passed -
  • query: SELECT $1::TEXT || $2::VARCHAR
  • parameters: [ "Hello ", "World" ]
  • parameterTypes: [ "Text", "Varchar" ]
  • result: Hello World

Testing Extended Query Protocol Metadata

#Test NameStatusErrorDetails
1 Extended query protocol works without parameters โœ… passed -
  • output: โœ… Extended query protocol works without parameters
2 TEXT parameter has no size limit (as expected) โœ… passed -
  • output: โœ… TEXT parameter has no size limit (as expected)

Testing Typmod Values in RowDescription Messages

#Test NameStatusErrorDetails
3 Schema implies correct typmod โœ… passed -
  • output:
    • โœ… Schema implies correct typmod: ((10 << 16) | 2) + 4 = 655366
    • โœ… Schema implies correct typmod: ((18 << 16) | 4) + 4 = 1179656

Validating Power BI Critical Scenarios

#Test NameStatusErrorDetails
4 All critical metadata fields present after DISCARD ALL โœ… passed -
  • output: โœ… All critical metadata fields present after DISCARD ALL
5 All values readable as System.Object โœ… passed -
  • output: โœ… All values readable as System.Object
6 Value readable โœ… passed -
  • output:
    • โœ… Value readable: (String)
    • โœ… Value readable: 123.45 (Decimal)
    • โœ… Value readable: 9/5/2025 10:28:03โ€ฏAM (DateTime)
    • โœ… Value readable: System.Int32[] (Int32[])