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