Skip to content

TIME_NS Support + Arrow#20361

Merged
pdet merged 12 commits intoduckdb:mainfrom
pdet:arrow_time_ns
Jan 7, 2026
Merged

TIME_NS Support + Arrow#20361
pdet merged 12 commits intoduckdb:mainfrom
pdet:arrow_time_ns

Conversation

@pdet
Copy link
Collaborator

@pdet pdet commented Jan 2, 2026

Picking up #19606, solving merge conflict, and removing unnecessary exclusions of time_ns type.

We are still missing the tests for the different precision types of TIME, these should be added in our Python client after this code gets merged, as we need arrow to produce these precision types.

@jraymakers
Copy link
Contributor

Thanks for picking this up! I was just going to ask about it.

@duckdb-draftbot duckdb-draftbot marked this pull request as draft January 5, 2026 12:31
@pdet pdet marked this pull request as ready for review January 5, 2026 13:10
@duckdb-draftbot duckdb-draftbot marked this pull request as draft January 5, 2026 20:05
@pdet pdet marked this pull request as ready for review January 5, 2026 23:13
@duckdb-draftbot duckdb-draftbot marked this pull request as draft January 6, 2026 11:52
@pdet pdet marked this pull request as ready for review January 6, 2026 11:59
@lnkuiper
Copy link
Collaborator

lnkuiper commented Jan 7, 2026

Thanks for picking this up!

@pdet pdet merged commit ee0b06f into duckdb:main Jan 7, 2026
100 checks passed
staticlibs added a commit to staticlibs/duckdb-java that referenced this pull request Jan 8, 2026
This PR adds support for fetching `TIME_NS` values as instances of
`java.time.LocalTime` class, example:

```java
LocalTime lt = rs.getObject(1, LocalTime.class);
```

Nanosecond precision is maintained on fetching. Currently there is not
possible to preserve nanosecond precision for `TIME_NS` query
parameters.

The support is necessary to fix `test_all_types` failures introduced by
duckdb/duckdb#20361.
staticlibs added a commit to staticlibs/duckdb-java that referenced this pull request Jan 8, 2026
This PR adds support for fetching `TIME_NS` values as instances of
`java.time.LocalTime` class, example:

```java
LocalTime lt = rs.getObject(1, LocalTime.class);
```

Nanosecond precision is maintained on fetching `TIME_NS` values from DB.

Currently it is not possible to preserve nanosecond precision when
inserting `TIME_NS` values using query parameters.

The support is necessary to fix `test_all_types` failures introduced by
duckdb/duckdb#20361.
staticlibs added a commit to duckdb/duckdb-java that referenced this pull request Jan 8, 2026
This PR adds support for fetching `TIME_NS` values as instances of
`java.time.LocalTime` class, example:

```java
LocalTime lt = rs.getObject(1, LocalTime.class);
```

Nanosecond precision is maintained on fetching `TIME_NS` values from DB.

Currently it is not possible to preserve nanosecond precision when
inserting `TIME_NS` values using query parameters.

The support is necessary to fix `test_all_types` failures introduced by
duckdb/duckdb#20361.
evertlammerts added a commit to duckdb/duckdb-python that referenced this pull request Jan 12, 2026
Add support for TIME_NS (see
duckdb/duckdb#20361).

The original PR added support for the `TIME_NS` type, which represents
the time of day in nanoseconds:
* Arrow supports this type
* Pandas does not have this type itself (but can handle it as an
`object` through arrow)
* Python does not have an equivalent - `datetime.time` has microsecond
precision.

Note that DuckDB supports `TIME_NS` -> `TIME` casting but not the other
way around, meaning that you can't insert e.g. a `datetime.time` into a
`TIME_NS` column.
staticlibs added a commit to staticlibs/duckdb-postgres that referenced this pull request Jan 18, 2026
This PR updates submodules and adds a number of minor changes:

 - update `duckdb` submodule to the latest `v1.5-variegata`
 - update `extension-ci-tools` submodule to the latest `main`
 - update `MainDistributionPipeline.yml` to the same versions of the
   engine and CI tools as above
 - update `Linux.yml` to set `LOCAL_EXTENSION_REPO` env var that is now
   (after some recent `unittest` chage) is required to run tests with
   extensions that are not statically linked (otherwise
   `require postgres_scanner` fails)
 - apply patch `getdatainternal.patch` from the engine repo
 - add a change to `postgres_storage.cpp` to accomodate to changes added
   in duckdb/duckdb#20508
 - update `attach_types.test` that started failing due to
   duckdb/duckdb#20361 change

PS: due to changes required for duckdb/duckdb#20508 it is suggested to
add `v1.4-andium` branch to this repo (on a current `main`).
github-actions bot pushed a commit to duckdb/duckdb-r that referenced this pull request Feb 26, 2026
TIME_NS Support + Arrow (duckdb/duckdb#20361)
No catalog found Nightly test fix (duckdb/duckdb#20409)
Avoid frequent checkpoints triggered by optimistic insertions (duckdb/duckdb#20336)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants