Conversation
Generated-with: Codex
Generated-with: Codex PP-Fix-Transition: from=cdce3214691a599b3500f9c583ac3d36e8822768 review-comment=5591541549 claim=5591542049 epoch-sha256=9b538f8c0e578dd6626a61fcde6669d9802f52bc0208ee41d579f916c224579c
|
Ревью. (круг 1) |
|
PromptPilot service marker: REVIEW result publication claimed. |
|
PromptPilot service marker: REVIEW result committed. |
Generated-with: Codex PP-Fix-Transition: from=023a84ce4163137ea253ec3aa0f9cd168c6fc54e review-comment=5593169883 claim=5593170485 epoch-sha256=2217d1bd6ceccc562b83a2ad3dcc40f6dc3eb32cad6563855a78f9619108fddc
|
Исправлено по блокирующему замечанию:
Осознанно не менял путь именованных IANA-зон и зон без DST: они сохраняют прежнее поведение. Пунктов «Хвоста» в ревью не было. Проверки:
|
|
Ревью. (круг 2)
|
|
PromptPilot service marker: REVIEW result publication claimed. |
|
PromptPilot service marker: REVIEW result committed. |
|
Исправлено по блокирующим замечаниям второго круга:
Осознанно не менял семантику неквалифицированных полей, параметров и путь именованных IANA-зон: они не относятся к блокерам. Пунктов «Хвоста» в ревью не было. Проверки:
|
|
Ревью. (круг 3)
|
|
PromptPilot service marker: REVIEW result publication claimed. |
|
PromptPilot service marker: REVIEW result committed. |
|
Решение человека: довести областно-зависимый вывод типов в этом PR. Сужать контракт #1243 и принимать расхождение для вложенных запросов или ОБЪЕДИНИТЬ нельзя: это оставит неверную календарную семантику для доказанного типа date. Исправьте область видимости квалификаторов и добавьте оба регрессионных теста из третьего ревью. После исправления PR возвращается в REVIEW. |
Generated-with: Codex PP-Fix-Transition: from=197c4316794de4ee67d71a702f867e05e480306d review-comment=5594460337 claim=5594473320 epoch-sha256=06560b688df0c9283a0719935d32244135be8ab50d8b68c59ac70fe5b555ad36
|
Исправлено по решению человека и блокирующему замечанию третьего круга:
Осознанно не менял неквалифицированные поля, параметры и семантику строк: они не относятся к замечанию. Пунктов «Хвоста» в ревью не было. Проверки:
|
|
Ревью. (круг 4)
|
|
PromptPilot service marker: REVIEW result publication claimed. |
|
PromptPilot service marker: REVIEW result committed. |
|
Решение по вопросу круга 4: доводим областно-зависимый вывод типа до неквалифицированных полей в этом PR (вариант «а»). Контракт доработки:
После доработки — обычный круг REVIEW и мой ship. |
|
Возврат PR в FIX. Решение по кругу 4 выше принято (вариант «а» — доводим областно-зависимый вывод типа до неквалифицированных полей в этом PR), но метка Контракт доработки — по тому решению:
После доработки — обычный круг REVIEW. pp:fix-decision fa153fc |
Тип неквалифицированного аргумента календарной функции определяла одна карта buildColTypes, снятая по первому источнику всего потока токенов. Поэтому во вложенном запросе и в соседних ветках ОБЪЕДИНИТЬ одноимённое поле чужой области решало за своё: строковое Значение получало ob_local_datetime, а localizация появлялась дважды вместо одного раза. Теперь неквалифицированные имена типизирует buildScopedColTypes — карта на каждую область SELECT, собранная из источников самой области. Имя, которое два источника одной области типизируют по-разному, из карты выпадает: компиляция остаётся в прежней семантике, а не угадывает тип первого источника. Квалифицированные имена и tr.colTypes не тронуты. Регрессии — на публичном query.Compile: вложенный запрос string-снаружи/date-внутри, ветки ОБЪЕДИНИТЬ date/string (в обоих ob_local_datetime ровно один раз) и неоднозначное имя в одной области (локализации нет). Generated-with: Claude Code PP-Fix-Transition: from=fa153fcee99d050c990ec29ab73cc67b97f77492 review-comment=5605530776 claim=5605549587 epoch-sha256=088e194a1f541fa08c8186b528a17bc5cf6600565d592a40b33934657f15b517 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSKmvmK49phRMJAcyhtBap
|
Доработка по решению круга 4 — вариант «а»: областно-зависимый вывод типа доведён до неквалифицированных полей. Что сделано:
Осознанно не менял:
Проверки локально: |
|
Ревью. (круг 5)
|
|
PromptPilot service marker: REVIEW result publication claimed. |
|
PromptPilot service marker: REVIEW result committed. |
Что исправлено
dateв локальные стенные часы приложения доГод/Месяц/День,Начало*иКонецДня.TimeZoneприложения, поэтомуTIMESTAMPTZсчитает календарные части в той же зоне, что DSL и UI.dateи системномуПериод; обычная строка и будущийlocaldateостаются «как записаны».Вариант: 1 (решение человека в комментарии к заявке).
Проверки
query.Compile→query.Runдля SQLite/PostgreSQL,Asia/KolkataиAmerica/New_York, зимнего и летнего смещений;go testдляinternal/query,internal/storage,internal/dsl/interpreter;internal/queryиinternal/storageсTZ=Asia/KolkataиTZ=America/New_York;go test -race ./internal/query -run '^TestDateFunctionsUseApplicationLocalTime$' -count=1;go build ./...;go test ./....Локально
TEST_DATABASE_URLне задан, поэтому PostgreSQL-половину нового матричного теста исполнит обязательныйpostgres-integrationjob.Совместимость
Для существующих запросов календарный день
dateу границы UTC может измениться: теперь он совпадает с уже действующей семантикой DSL/UI. Сохранённые моменты не переписываются.Fixes #1243