Commit Graph
18 Commits
Author SHA1 Message Date
Marc Gravell 6d48ef664a Re-enable DateOnly/TimeOnly support, fixing the defects that got it disabled (#2228)
DateOnly/TimeOnly support (#2051) was compiled out in 907a4d9 pending
#2071/#2072. This re-enables it with the root causes fixed, and teaches the
read paths that the date/time family has no IConvertible bridge - which box
a date or time column yields is a provider/version decision (Npgsql 10:
DateOnly/TimeOnly; SqlClient and Npgsql 9: DateTime/TimeSpan), so both
shapes must convert:

- GetFieldValue<T> is no longer demanded of a column whose reported type
  needs a family conversion (a datetime column into a DateOnly member was
  the #2072 breakage; SqlDecimal-style entries, where GetFieldValue from a
  differently-reported column is the whole point, keep it);
- the member, scalar and Parse<T> paths all convert DateOnly/TimeOnly <->
  DateTime/TimeSpan in both directions (IL for members, object-level
  elsewhere), fixing reads against Npgsql 10 date/time columns (#2226);
- Query<DateOnly>/<TimeOnly> in scalar form no longer silently return
  default(T) (#2227): the typeMap entries make them simple types again;
- the same-TypeCode direct-unbox shortcut is restricted to distinct codes:
  TypeCode.Object matching TypeCode.Object says nothing (TimeSpan into
  TimeOnly? threw), while object on either side (sql_variant columns,
  dynamic members) keeps the direct unbox;
- the scalar conversion fallback keeps Convert.ChangeType's strict null
  contract (TestConversionExceptionMessages pins it).

The parked DateTimeOnlyTests are re-enabled, with new tests for the #2072
shape (datetime column into DateOnly member), the #2227 scalar shape, and
date-as-DateTime regression guards; PostgresqlTests gains the Npgsql-10
interchange matrix ([FactPostgresql], so it runs where the documented
container is available).

Fixes #2072, #2226, #2227, #1728; expected to also resolve #2071.
2026-08-20 15:20:51 +01:00
Marc Gravell bd4f75b512 normalize async API surface over all TFMs (#2144)
* - normalize async API surface over all TFMs (fix #2143)
- target net8.0 instead of net5.0
- lib updates

* net9 SDK

* perf tests: clean up SqlClient warning

* CI fix: test concurrency

* rev snowflake
2025-02-06 12:11:30 +00:00
Marc Gravell d7c16035d2 fix codegen error in value-type multimap #2005 (#2022)
in horizontal multi-map, don't "returnValueLocal = null" for value-types (invalid IL)
fix #2005
2024-01-02 15:32:04 +00:00
Giorgi Dalakishvili 2837480903 Add DuckDB tests (#1970)
* Add DuckDB tests

* Update DuckDB.NET.Data.Full version
2023-10-11 12:41:06 +01:00
Marc GravellandNick Craver aecffecae1 attempt NRT makeover (#1928)
* attempt NRT makeover

- annotate NRTs on GridReader API
- add protected access to some of the GridReader internals
- switch GridReader callbacks to be more type-independent

docs

lib updates; deal with yellow warnings and test failures (SQL server certs and cancellation surfacing differently)

fix break

simplify proposed GridReader changes to protected OnBeforeGrid and OnAfterGrid[Async]

Builds: Bump library versions (#1935)

Tests: Upgrade dependencies for Dependabot (#1936)

I'll do a pass at all of these later, but getting CVE versions out of the pipe.

Resolving 4 alerts here: https://github.com/DapperLib/Dapper/security/dependabot

merge and lib updates

allow Identity to be constructed on-the-fly inside GridReader

fix build warnings

include readme

rev minor

- enable [SkipLocalsInit] everywhere
- use NET5_0_OR_GREATER
 for remoting check

# Conflicts:
#	Dapper/CommandDefinition.cs
#	Dapper/DefaultTypeMap.cs
#	Dapper/SqlMapper.Async.cs
#	Dapper/SqlMapper.IDataReader.cs
#	Dapper/SqlMapper.Link.cs
#	Dapper/SqlMapper.cs
#	Directory.Build.props

* shipped, not unshipped

* fixup SqlBuilder; use is null / is not null

* use central package management (#1949)

* Nullable test tweaks

* Nuget: let's just remove it!

* 2 test fixes from review

* fix FindExplicitConstructor

* add GetPropertySetterOrThrow

* fix NRT on FindConstructor

* DapperRow: value is object?

* use NotNullWhen

* make constructor problem more obvious

* test fixes

---------

Co-authored-by: Nick Craver <nrcraver@gmail.com>
2023-09-12 15:58:49 +01:00
Lehonti RamosandJohn Doe ff913be391 Removed block nesting levels in a few tests by using block-scoped using statements (#1939)
Co-authored-by: John Doe <john@doe>
2023-08-24 13:12:33 +01:00
Cédric Luthi 677fee27c6 Enable the Issue552_SignedUnsignedBooleans test (#1919)
It works fine with MySqlConnector 1.1.0
2023-06-13 17:11:13 +01:00
Cédric Luthi da6509a224 Document how to run docker for db tests (Firebird + MySQL + PostgreSQL) (#1918) 2023-06-13 17:06:30 +01:00
mgravell 3d405fea35 add type hint 2021-11-11 14:14:25 +00:00
mgravell 21ce60b523 move tests to npgsql 6 (GA); better datetime coverage 2021-11-11 14:05:48 +00:00
Marc Gravell b272cc664d Don't specify dbtype for DateTime et al; fixed npgsql 6 issue (#1723)
* context: #1716 https://github.com/DapperLib/Dapper/issues/1716

- change type-map to allow nullable
- change DateTime/TimeSpan to null
- do not specify DbType for null
- semi-breaking change: swap GetDbType to SetDbType, noting that it is marked [Obsolete] and internal-use-only
- semi-breaking change: make LookupDbType return nullable (same internal-use/[Obsolete])

* add test for Npgsql 6.0.0-rc.1

* try list parameters (like arrays)

* never assign -1 (sentinel) as the .DbType

* postgres tests
2021-11-03 14:01:15 +00:00
Marc Gravell 4aac41a2bc Enables "snowflake" connection (#1689)
* snowflake tests #1687

* actually add the tests!
2021-07-27 09:11:16 +01:00
Nick Craver a12c37adcd Merge pull request #1598 from DarkWanderer/feature/support-returning-arrays 2021-05-09 08:08:41 -05:00
mgravell e26aa7b2d6 fix #1656 (git reorg) 2021-04-29 11:04:12 +01:00
DarkWanderer 55b10233f1 Removed accidental namespace addition, made test name clearer 2020-12-20 11:13:12 +03:00
DarkWanderer f724638c20 Add PostgreSQL test for array 2020-12-20 11:13:12 +03:00
Marc Gravell 6ab170c160 .Net 5 (#1572)
* initial net5.0 tweaks; also fix current IDE warnings

* lib updates and fixes

* more cleanup

* fix snafu

* skip locals init

* disable xunit shadow copy in tests

* test records

* explore scenario that currently works re #1571
2020-11-17 09:57:17 +00:00
Nick Craver 78ed4b2077 Tests: move into folders
One of several moves to make this something we can dev on all platforms and build on Actions for v3 onwards.
2020-10-11 14:56:35 -04:00