AURORA-1922: алиас подзапроса в 0012 для PostgreSQL 15 #221
Open
aep
wants to merge 2 commits from
feat/205-aurora-1922-pg15-migration-0012 into test
pull from: feat/205-aurora-1922-pg15-migration-0012
merge into: RSHB:test
RSHB:main
RSHB:feat/236-aurora-1843-svod2-server-paging-perf
RSHB:feat/235-aurora-1850-upd-form-cells-subtree
RSHB:feat/236-aurora-1843-svod2-server-paging-web
RSHB:feat/233-aurora-1848-sheet-json-no-pydantic-b
RSHB:feat/236-aurora-1843-svod2-server-paging
RSHB:feat/234-aurora-1839-cell-memo
RSHB:feat/233-aurora-1848-sheet-json-no-pydantic
RSHB:feat/237-aurora-1845-ws-connection-cache
RSHB:feat/216-aurora-1846-form4-sheet-sum
RSHB:feat/215-aurora-1844-upd-form-cells-full-rows
RSHB:feat/226-aurora-1837-cell-styles-css
RSHB:feat/207-aurora-1831-project-tn-race
RSHB:feat/208-aurora-1832-phase-dates-tz
RSHB:feat/220-aurora-1842-svod2-column-virtual
RSHB:feat/209-aurora-1833-greenlet-dev
RSHB:feat/206-aurora-1830-users-me-local-email
RSHB:feat/212-aurora-1838-ws-immutable-update
RSHB:feat/211-aurora-1836-row-measure
RSHB:feat/214-aurora-1841-dict-vsp-virtual
RSHB:feat/213-aurora-1840-sheet-modals
RSHB:feat/210-aurora-1835-svod1-formatter
RSHB:test
RSHB:svod2-filter-fix2
RSHB:indent-export
RSHB:export-hierarchy
RSHB:svod2-filter-fix
RSHB:fix-id-column
RSHB:export-year-fix
RSHB:form3-source
RSHB:columns-svod-2
RSHB:export-optimize-refresh
RSHB:last-column
RSHB:svod-fix
RSHB:fix-columns
RSHB:form3-expense
RSHB:sattelite-fix
RSHB:delete-sattelite-rows
RSHB:form3-pages
RSHB:form1-sub_sub-fix
RSHB:sort-fix
RSHB:fixes-form
RSHB:new-expenses
RSHB:new-rows
RSHB:fix-style
RSHB:phase-template-edit
RSHB:fixes
RSHB:add-btn-reset-filter
RSHB:vsp-choice-fix
RSHB:project-filters-fix
RSHB:width-column-header-name
RSHB:task-filter-navigation
RSHB:auth
RSHB:icons-program-project
RSHB:export-optimize
RSHB:org-unit-limits
RSHB:auth-v2
RSHB:tasks-filters
RSHB:insert-row-fix
RSHB:svod-roles
RSHB:new-role-fix
RSHB:phase-edit-fix
RSHB:new-role
RSHB:delete-from-cell
RSHB:svod-cahe-and-table-direction
RSHB:direction-stage-fix
RSHB:backslash-fix
RSHB:svod
RSHB:front-svod-form-1
RSHB:projects-filters
RSHB:remove-row-fix
RSHB:computed-fix
RSHB:modal-add-year-project
RSHB:name-fix
RSHB:audit-logs-projects
RSHB:meta-form-3
RSHB:project-back-fix
RSHB:fix-sticky-columns
RSHB:fixies-3-form
RSHB:tech-num-fix
RSHB:fix-logic-limitation
RSHB:projects-fix
RSHB:3-form-project
RSHB:project-add-year-handler
RSHB:projects-summary-handler
RSHB:AURORA-1247
RSHB:projects-handlers
RSHB:vsp-choose-form2-2
RSHB:directions-fix
RSHB:add-validation
RSHB:add-checkbox-export-vsp
RSHB:fix-update-column-config
RSHB:fix-editable-columns
RSHB:add-biome-front
RSHB:vsp-choose-form2
RSHB:export-form-4
RSHB:booking-fix
RSHB:fix-front-tables
RSHB:phase-directions
RSHB:AURORA-1225
RSHB:fix-mapping-form-2-oper
RSHB:AURORA-1076-fix
RSHB:fix-add-row-program-4-form
RSHB:form2-limit-migrations
RSHB:delete-projects
RSHB:AURORA-1076
RSHB:form-4-add-row
RSHB:fix-logs
RSHB:AURORA-1206
RSHB:AURORA-894
RSHB:add-line-log-hotfix
RSHB:form-export-fix
RSHB:form-4-sql
RSHB:table-optimization-fix
RSHB:header_forms
RSHB:form-4-expense-item-filters
RSHB:entity-type-hotfix
RSHB:form-3-phases-timezones
RSHB:form-4-handlers
RSHB:export-fix
RSHB:close-date-vsp-fix
RSHB:deleted-user-auth-fix
RSHB:smeta-fix
RSHB:front-fixes
RSHB:line_id_code_full
RSHB:line_id_code
RSHB:timezones
RSHB:filenames-fix
RSHB:AURORA-1174-73
RSHB:project-sheets
RSHB:AURORA-1166
RSHB:websocket-projects
RSHB:project-front
RSHB:form3-permissions
RSHB:location_from_to_placement_type
RSHB:fix-vsp-filters
RSHB:fix-tests-and-functions
RSHB:mig2-fix
RSHB:vsp_fixes
RSHB:fix-ssp-title
RSHB:AURORA-1148
RSHB:fix-vsp-form-edit
RSHB:sql-funcs2-fix
RSHB:AURORA-1132
RSHB:logs
RSHB:AURORA-1147
RSHB:export-optimization
RSHB:AURORA-1131
RSHB:sql-funcs-fix
RSHB:vsp-dropdown-form
RSHB:form_2-back
RSHB:migrations
RSHB:websocket-self-flag
RSHB:reload-fix
RSHB:test-stand-fix
RSHB:excel-empty-fix
RSHB:requirements-fix
RSHB:AURORA-1096-back
RSHB:AURORA-1098
RSHB:AURORA-1096
RSHB:ws-user-id-fix
RSHB:expense-item-handler
RSHB:fix-date-phase
RSHB:excel-fix
RSHB:vsp-edit-field-fix
RSHB:vsp-fix-back
RSHB:vsp-back
RSHB:create-form-back
RSHB:export-direction-fix
RSHB:change-role-fix
RSHB:org-unit-users-fix
RSHB:audit-fix
RSHB:org-archive
RSHB:del_row_fix
RSHB:websocket_locks
RSHB:new_line_id
RSHB:admin-back
RSHB:form-fix
RSHB:ws
RSHB:ssp-fix
RSHB:stages-back
RSHB:form_124_write
RSHB:form_124
RSHB:new-model
RSHB:test-tsygankov
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "feat/205-aurora-1922-pg15-migration-0012"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #205
Задача: AURORA-1922
Что сделано
0012_del_project.sql(v3.can_delete_project): в подзапросеselect count(*) from ( ... )в FROM не было алиаса. PostgreSQL 15.12 такое не принимает («subquery in FROM must have an alias»), миграция падала на контуре. PostgreSQL 16 принимает, поэтому проблема не была видна. Добавлен алиасAS active_reportsна закрывающей скобке подзапроса; смысл не меняется.api/tests/unit/test_sql_migrations_pg15_compat.py(без БД): сканируетalembic/versions/sql/*.sqlиalembic/versions/*.py, требует алиас у каждого подзапроса в FROM. Падал на0012_del_project.sql:27до правки. Включена самопроверка сканера на синтетическом тексте.Почему правится старая миграция
Новая миграция не поможет: 0012 выполняется раньше, и падение происходит на нём. На базах, где 0012 уже применена, правка ничего не меняет (функция уже создана; переопределения по
CREATE OR REPLACEв более поздних миграциях содержат тот же код, но это вне данного PR). Правка нужна только для чистого развёртывания миграций на PG15.На PostgreSQL 16 и 15 результат одинаковый
dfip-pg15):alembic upgrade headс нуля проходит до 0049; полный pytest--init_db: 202 passed, 3 failed, 4 skipped.test_backend_calls_form3_add_project_and_add_line_functions,test_export_full_form_ignores_non_applicable_params_for_other_sheets,test_export_form_payload_forwards_ignore_flag.Тесты
pytest tests/unit/test_sql_migrations_pg15_compat.py: 2 passed (до правки регрессия падала).Проверить руками
Замер до/после
Не применимо (миграция, не производительность).
Rulings I made
active_reports(имя по смыслу подзапроса). Обоснование: имя не влияет на результат. Цена ошибки: минимальная, переименование без последствий.FROM ((как в ТЗ),JOIN (не проверяется. Список «не алиас» расширен сверх ТЗ (RIGHT, FULL, OUTER, NATURAL, FOR, FETCH, USING, LATERAL, TABLESAMPLE). Обоснование: эти слова стоят после подзапроса и алиасом не являются. Цена ошибки: при появленииJOIN (select ...)без алиаса тест его не поймает.🤖 Generated with Claude Code
Checkout
From your project repository, check out a new branch and test the changes.