summaryrefslogtreecommitdiffstats
path: root/library/cpp/timezone_conversion
Commit message (Collapse)AuthorAgeFilesLines
* Speed up working with timezonesshamteev12 days1-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Optimize timezone-aware query functions (timestamp_floor\_\*\_tz, format_timestamp_tz) Problem: queries using timezone functions on a non-Moscow/non-UTC zone (e.g. Europe/Bucharest) ran 10-20x slower than their non-timezone equivalents. For Moscow/UTC a lookup table handles the conversion; for any other zone the code falls back to live cctz calls. Cause, confirmed by flamegraph and code: 1. NDatetime::ToCivilTime performed two independent timezone lookups per call. cctz::convert(tp, tz) is defined as tz.lookup(tp).cs, and the function then called tz.lookup(tp) again for the offset/is_dst fields. Both pieces of data are already present in a single absolute_lookup result. 2. TimestampFloorDayTZInternal (and Month/Quarter/Year variants) located the start of the period via a binary search that called ToCivilTime on every iteration — \~18 iterations for the day case. Combined with (1) that is \~38 cctz lookups per call, and timestamp_floor_day_tz appears twice per row in a typical WHERE clause. * Changelog entry Type: fix 1. ToCivilTime now does a single tz.lookup(tp) and reuses both cs and the offset/is_dst fields. Behavior is identical; affects all callers. 2. TimestampFloor\{Day,Month,Quarter,Year\}TZ compute the period start directly (subtract the civil time-of-day, or build the first second of the period and convert it back), then verify the result. The binary search is kept as a fallback for the rare days that do not start at midnight (DST transitions at 00:00, historical offset shifts), so results are unchanged. commit_hash:295ee82832ab2a4a35920067e7c063d6992bb083
* Make "GMT+03:00" known timezone formatd-dima2024-03-121-5/+14
| | | | cd2e9b766cd6579b0124ffe05b23a22513e19a93
* Weekday Generation From Civil Secondandreyshspb2024-02-222-0/+13
| | | | | Weekday Generation From Civil Second 70003fbf387f8f0157cff5f0fa3ab4354871d703
* Intermediate changesrobot-piglet2024-02-061-0/+17
|
* feat contrib: aiogram 3armenqa2024-01-196-181/+0
| | | | Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
* parsing promosmoroznastya2023-12-053-4/+38
|
* External build system generator release 65robot-ya-builder2023-12-051-3/+3
| | | | Update tools: yexport, os-yexport
* add darwin-arm64 CMakeListsdcherednik2023-11-202-0/+34
|
* Fix input variable missprintsvidyuk2023-08-304-0/+24
|
* All .ll files support in LLVM_BCsvidyuk2023-08-304-24/+0
|
* add ymake export to ydbalexv-smirnov2023-06-132-0/+30
|
* External build system generator release 29robot-ya-builder2023-04-191-1/+1
| | | Update tools: yexport
* Revert ymake build from ydb oss exportalexv-smirnov2023-03-282-30/+0
|
* External build system generator release 21robot-ya-builder2023-03-171-3/+3
| | | Update tools: yexport
* add library/cpp/actors, ymake build to ydb oss exportalexv-smirnov2023-03-152-0/+30
|
* Intermediate changesrobot-piglet2023-03-092-0/+34
|
* Intermediate changesrobot-piglet2023-03-073-2/+2
|
* External build system generator release 17robot-ya-builder2023-03-064-1/+19
| | | Update tools: yexport
* Intermediate changesrobot-piglet2023-02-073-9/+9
|
* Intermediate changesrobot-piglet2023-02-073-9/+9
|
* External build system generator release 12robot-ya-builder2023-01-311-1/+1
| | | Update tools: yexport
* External build system generator release 8robot-ya-builder2023-01-174-4/+4
| | | Update tools: yexport
* Sync linux-headers instead of using system onesthegeorg2022-12-154-18/+87
|
* intermediate changesarcadia-devtools2022-03-152-37/+0
| | | | ref:ca7a95e8c9a9d780f96497136a152091d54e61b5
* Improve SystemCommand check in YDB CLI, KIKIMR-14321pnv12022-03-011-0/+9
| | | | ref:fe5ed49138dce046a93c364cc8879fad3abf3eef
* intermediate changesarcadia-devtools2022-02-181-0/+17
| | | | ref:1a0585d83f27cb6fb5b9c4f68a08177e10faf3b3
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.barricade2022-02-102-92/+92
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.barricade2022-02-102-92/+92
|
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.yulika2022-02-103-49/+49
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.yulika2022-02-103-49/+49
|
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.d-dima2022-02-104-101/+101
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.d-dima2022-02-104-101/+101
|
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.gotmanov2022-02-105-211/+211
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.gotmanov2022-02-105-211/+211
|
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.tobo2022-02-101-8/+8
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.tobo2022-02-101-8/+8
|
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.petrk2022-02-108-358/+358
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.petrk2022-02-108-358/+358
|
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.floatdrop2022-02-102-11/+11
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.floatdrop2022-02-102-11/+11
|
* Restoring authorship annotation for Nikita Slyusarev ↵Nikita Slyusarev2022-02-101-4/+4
| | | | <[email protected]>. Commit 2 of 2.
* Restoring authorship annotation for Nikita Slyusarev ↵Nikita Slyusarev2022-02-101-4/+4
| | | | <[email protected]>. Commit 1 of 2.
* Restoring authorship annotation for Ivan Komarov <[email protected]>. ↵Ivan Komarov2022-02-106-256/+256
| | | | Commit 2 of 2.
* Restoring authorship annotation for Ivan Komarov <[email protected]>. ↵Ivan Komarov2022-02-106-256/+256
| | | | Commit 1 of 2.
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.yazevnul2022-02-104-28/+28
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.yazevnul2022-02-104-28/+28
|
* Restoring authorship annotation for Vlad Yaroslavlev <[email protected]>. ↵Vlad Yaroslavlev2022-02-101-1/+1
| | | | Commit 2 of 2.
* Restoring authorship annotation for Vlad Yaroslavlev <[email protected]>. ↵Vlad Yaroslavlev2022-02-101-1/+1
| | | | Commit 1 of 2.
* Restoring authorship annotation for <[email protected]>. Commit 2 of 2.eeight2022-02-102-2/+2
|
* Restoring authorship annotation for <[email protected]>. Commit 1 of 2.eeight2022-02-102-2/+2
|