Skip to content

Ship the runnable SQL Server example #140

Description

@victorchutw

Implements ADR-0066 (the example surface). Part of the SQL Server destination cycle (map #106, sliced from #113).

Blocked by #136

Context

Every example is executed against its README's claims by tests/examples.rs. The SQL Server example keeps that invariant wherever a server exists — in CI, always — by carrying its executing test behind the same ignore gate. Full refresh is the example's mode: it is the one mode that bootstraps its own table, so the example needs no pre-existing DDL.

The contract

  • examples/csv-to-sqlserver-full-refresh/: a small CSV fixture + a version: 1 load definition using the sqlserver destination (password_env posture; host/port/user matching the documented container defaults; trust_server_certificate: true for the self-signed container cert, stated plainly in the README) + a README saying what it demonstrates.
  • The README states the server prerequisite and the docker one-liner verbatim from CONTRIBUTING.md (Add a minimal CONTRIBUTING.md as the contributor home #133) — the examples' zero-prerequisite framing relaxes for server-backed destinations only, and says so.
  • tests/examples.rs: a SQL Server destination arm reading the table back through tiberius (row count + a value probe), and the example's executing entry behind #[ignore = "needs SQL Server"], connecting with the same fixed defaults / DATA_SPARK_TEST_MSSQL_* overrides as the connector's own gated tests.
  • examples/README.md: a table row for the new example, plus the one framing adjustment: self-contained phrasing now notes that server-backed examples state their prerequisite.

Acceptance criteria

  1. The example runs as its README says on a machine with the container up: one command sequence — start container, export the password env var, run the load — exits 0 with the documented report facts (atomic / transactional_delete_insert).
  2. The gated examples entry executes in CI (via --include-ignored) and reads the rows back through tiberius; on a serverless machine it shows up as ignored and plain cargo test --locked stays green.
  3. examples/README.md lists the example and carries the adjusted framing sentence.
  4. CHANGELOG.md Unreleased entry (examples are user-visible per the changelog's scope note).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified and ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions