TDS Foreign data wrapper
- Author: Geoff Montee
- Name: tds_fdw
- File: tds_fdw/README.md
This foreign data wrapper requires a library that implements the DB-Library interface, such as FreeTDS. This has been tested with FreeTDS, but not the proprietary implementations of DB-Library.
This should support PostgreSQL 9.2+.
The current version does not yet support JOIN push-down, or write operations.
It does support WHERE and column pushdowns when match_column_names is enabled.
|CentOS 7||Rocky Linux 8||Ubuntu 20.04|
Installing on RHEL and clones (CentOS, Rocky Linux, AlmaLinux, Oracle...)
Installing on Ubuntu
Installing on Debian
Installing on openSUSE
Installing on OSX
Installing on Alpine (and Docker)
EXPLAIN (VERBOSE) will show the query issued on the remote system.
Notes about character sets/encoding
If you get an error like this with MS SQL Server when working with Unicode data:
NOTICE: DB-Library notice: Msg #: 4004, Msg state: 1, Msg: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier., Server: PILLIUM\SQLEXPRESS, Process: , Line: 1, Level: 16
ERROR: DB-Library error: DB #: 4004, DB Msg: General SQL Server error: Check messages from the SQL Server, OS #: -1, OS Msg: (null), Level: 16
Although many newer versions of the TDS protocol will only use USC-2 to communicate with the server, FreeTDS converts the UCS-2 to the client character set of your choice. To set the client character set, you can set client charset in freetds.conf. See The freetds.conf File and Localization and TDS 7.0.
Encrypted connections to MSSQL
It is handled by FreeTDS, so this needs to be configured at the
freetds.conf. Seee The freetds.conf File and at
freetds.conf settings look for
If you find any bugs, or you would like to request enhancements, please submit your comments on the project's GitHub Issues page.
Additionally, I do subscribe to several PostgreSQL mailing lists including pgsql-general and pgsql-hackers. If tds_fdw is mentioned in an email sent to one of those lists, I typically see it.