20260818_535_scan_digest_portable.py 699 B

1234567891011121314
  1. """Use a portable closed scan digest projection."""
  2. from alembic import op
  3. revision = "20260818_535"
  4. down_revision = "20260818_534"
  5. branch_labels = None
  6. depends_on = None
  7. def upgrade() -> None:
  8. op.get_bind().exec_driver_sql("""DO $$ DECLARE definition text; BEGIN SELECT pg_get_functiondef('public.bi_ai_catalog_runtime_write(text,jsonb)'::regprocedure) INTO definition; definition:=replace(definition, 'encode(public.digest(convert_to(v_scan||v_all::text,''UTF8''),''sha256''),''hex'')', 'md5(v_scan||v_all::text)||md5(''x''||v_scan||v_all::text)'); EXECUTE definition; END $$;""")
  9. def downgrade() -> None:
  10. raise RuntimeError("downgrade refused: scan digest correction is append-only")