feat(fc2c-i): migration 0004 enables tsm_system_rows
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
"""fc2c-i: enable tsm_system_rows for scalable random sampling
|
||||||
|
|
||||||
|
Revision ID: 0004
|
||||||
|
Revises: 0003
|
||||||
|
Create Date: 2026-05-15
|
||||||
|
|
||||||
|
"""
|
||||||
|
from typing import Sequence, Union
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
|
revision: str = "0004"
|
||||||
|
down_revision: Union[str, None] = "0003"
|
||||||
|
branch_labels: Union[str, Sequence[str], None] = None
|
||||||
|
depends_on: Union[str, Sequence[str], None] = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
op.execute("CREATE EXTENSION IF NOT EXISTS tsm_system_rows")
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
op.execute("DROP EXTENSION IF EXISTS tsm_system_rows")
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
"""Integration: the tsm_system_rows extension is installed by migration 0004.
|
||||||
|
|
||||||
|
Needs a real Postgres (CI does not provision one), so integration-marked.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
from sqlalchemy import text
|
||||||
|
|
||||||
|
pytestmark = pytest.mark.integration
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_tsm_system_rows_extension_present(db):
|
||||||
|
row = (
|
||||||
|
await db.execute(
|
||||||
|
text("SELECT 1 FROM pg_extension WHERE extname = 'tsm_system_rows'")
|
||||||
|
)
|
||||||
|
).first()
|
||||||
|
assert row is not None
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_system_rows_sampling_is_usable(db):
|
||||||
|
# Should parse and execute even on an empty table.
|
||||||
|
await db.execute(
|
||||||
|
text("SELECT * FROM image_record TABLESAMPLE SYSTEM_ROWS(1)")
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user