// the find
tds-fdw/tds_fdw
A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)
tds_fdw is a PostgreSQL foreign data wrapper that lets Postgres query Sybase and Microsoft SQL Server tables over the TDS protocol, using FreeTDS's DB-Library interface. It is for teams that need to read legacy SQL Server or Sybase data from Postgres without an ETL job, and it is read-only today.
- The regression suite runs the same type-boundary cases against SQL Server and PostgreSQL: min and max for every integer width, money and smallmoney extremes, datetimeoffset, and null datetime columns. Those are the places where a wrapper usually corrupts values quietly, so the coverage is aimed at the right spots.
- CI builds against PostgreSQL 14 through 19-testing on Rocky 9, Ubuntu 24.04, and openSUSE Leap 16. That is a wider matrix than most single-maintainer extensions bother with.
- TLS and client charset are delegated to FreeTDS and its freetds.conf instead of being reimplemented in the wrapper. The README points to the right settings for encryption and UCS-2 to client charset conversion. The EXPLAIN (VERBOSE) note shows the remote query, so pushdown can be checked rather than guessed at.
- No JOIN pushdown and no writes. A join against a remote table pulls the rows across and joins locally, so a large table on the SQL Server side will hurt, and there is no INSERT or UPDATE path at all.
- The README ties WHERE and column pushdown to match_column_names, so the default setup gets less pushdown than most people will assume. Read the EXPLAIN output before trusting the plan.
- The README claims PostgreSQL 9.2+ support, but the CI matrix only covers 14 through 19. Anything older is unverified, and the build badges point at a personal Jenkins host, so the CI signal depends on that machine staying up.
- Testing is only against FreeTDS. The README says the proprietary DB-Library implementations were not tested, so anyone on a vendor client library is testing it themselves.