{"id":13513444,"url":"https://github.com/tds-fdw/tds_fdw","last_synced_at":"2025-05-15T16:03:05.810Z","repository":{"id":11722321,"uuid":"14243858","full_name":"tds-fdw/tds_fdw","owner":"tds-fdw","description":"A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)","archived":false,"fork":false,"pushed_at":"2025-03-11T01:10:15.000Z","size":590,"stargazers_count":392,"open_issues_count":153,"forks_count":103,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-04-07T21:12:05.072Z","etag":null,"topics":["databases","foreign-data-wrapper","foreign-server","freetds","hacktoberfest","postgresql","postgresql-extension","sql-server","tds-fdw"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"gabrielelana/awesome-terminal-fonts","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tds-fdw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-08T20:40:55.000Z","updated_at":"2025-03-21T02:48:37.000Z","dependencies_parsed_at":"2024-01-13T19:23:20.492Z","dependency_job_id":"11d06d41-152c-4138-ac93-9729250d57d5","html_url":"https://github.com/tds-fdw/tds_fdw","commit_stats":{"total_commits":232,"total_committers":39,"mean_commits":5.948717948717949,"dds":0.4525862068965517,"last_synced_commit":"5fd7d424091118eb0b0867a8ad59ea3f5b9c8875"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tds-fdw%2Ftds_fdw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tds-fdw%2Ftds_fdw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tds-fdw%2Ftds_fdw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tds-fdw%2Ftds_fdw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tds-fdw","download_url":"https://codeload.github.com/tds-fdw/tds_fdw/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254374398,"owners_count":22060609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["databases","foreign-data-wrapper","foreign-server","freetds","hacktoberfest","postgresql","postgresql-extension","sql-server","tds-fdw"],"created_at":"2024-08-01T05:00:25.388Z","updated_at":"2025-05-15T16:03:05.786Z","avatar_url":"https://github.com/tds-fdw.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"\n# TDS Foreign data wrapper\n\n* **Author:** Geoff Montee\n* **Name:** tds_fdw\n* **File:** tds_fdw/README.md\n\n## Logo\n\n![Logo SVG](./logo/tds_fdw.svg)\n\n## About\n\nThis is a [PostgreSQL foreign data wrapper](https://wiki.postgresql.org/wiki/Foreign_data_wrappers) that can connect to databases that use the [Tabular Data Stream (TDS) protocol](https://en.wikipedia.org/wiki/Tabular_Data_Stream),\nsuch as Sybase databases and Microsoft SQL server.\n\nThis foreign data wrapper requires a library that implements the DB-Library interface,\nsuch as [FreeTDS](https://www.freetds.org). This has been tested with FreeTDS, but not\nthe proprietary implementations of DB-Library.\n\nThis should support PostgreSQL 9.2+.\n\nThe current version does not yet support JOIN push-down, or write operations.\n\nIt does support WHERE and column pushdowns when *match_column_names* is enabled.\n\n## Build Status\n\n|                |    Rocky Linux 8   |    Ubuntu 20.04   |    Ubuntu 24.04   | openSUSE Leap 15.6 |\n| --------------:|:------------------:|:-----------------:|:-----------------:|:------------------:|\n| **PostgreSQL 13**  |[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=13,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=13,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=13,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=13,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=13,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=13,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=13,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=13,label=docker)|\n| **PostgreSQL 14**  |[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=14,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=14,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=14,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=14,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=14,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=14,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=14,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=14,label=docker)|\n| **PostgreSQL 15**  |[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=15,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=15,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=15,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=15,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=15,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=15,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=15,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=15,label=docker)|\n| **PostgreSQL 16**  |[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=16,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=16,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=16,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=16,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=16,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=16,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=16,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=16,label=docker)|\n| **PostgreSQL 17**  |[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=17,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=rockylinux8,PG_VER=17,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=17,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu20.04,PG_VER=17,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=17,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=ubuntu24.04,PG_VER=17,label=docker)|[![Build Status](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=17,label=docker/badge/icon)](https://jenkins.juliogonzalez.es/job/tds_fdw-build/DISTRO=opensuseleap15.6,PG_VER=17,label=docker)|\n\n## Installing on RHEL and clones (CentOS, Rocky Linux, AlmaLinux, Oracle...)\n\nSee [installing tds_fdw on CentOS](InstallRHELandClones.md).\n\n## Installing on Ubuntu\n\nSee [installing tds_fdw on Ubuntu](InstallUbuntu.md).\n\n## Installing on Debian\n\nSee [installing tds_fdw on Debian](InstallDebian.md).\n\n## Installing on openSUSE\n\nSee [installing tds_fdw on openSUSE](InstallopenSUSE.md).\n\n## Installing on OSX\n\nSee [installing tds_fdw on OSX](InstallOSX.md).\n\n## Installing on Alpine (and Docker)\n\nSee [installing tds_fdw on Alpine](InstallAlpine.md).\n\n## Usage\n\n### Foreign server\n\nSee [creating a foreign server](ForeignServerCreation.md).\n\t\n### Foreign table\n\t\nSee [creating a foreign table](ForeignTableCreation.md).\n\t\n### User mapping\n\t\nSee [creating a user mapping](UserMappingCreation.md).\n\n### Foreign schema\n\nSee [importing a foreign schema](ForeignSchemaImporting.md).\n\n### Variables\n\nSee [variables](Variables.md).\n\n### `EXPLAIN`\n\n`EXPLAIN (VERBOSE)` will show the query issued on the remote system.\n\t\n## Notes about character sets/encoding\n\n1. If you get an error like this with MS SQL Server when working with Unicode data:\n   \n   \u003e NOTICE:  DB-Library notice: Msg #: 4004, Msg state: 1, Msg: Unicode data in a Unicode-only \n   \u003e collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC \n   \u003e version 3.7 or earlier., Server: PILLIUM\\SQLEXPRESS, Process: , Line: 1, Level: 16  \n   \u003e ERROR:  DB-Library error: DB #: 4004, DB Msg: General SQL Server error: Check messages from \n   \u003e the SQL Server, OS #: -1, OS Msg: (null), Level: 16\n   \n   You may have to manually set *tds version* in *freetds.conf* to 7.0 or higher. See [The *freetds.conf* File](https://www.freetds.org/userguide/freetdsconf.html).\n   and [Choosing a TDS protocol version](https://www.freetds.org/userguide/ChoosingTdsProtocol.html).\n\n2. Although many newer versions of the TDS protocol will only use USC-2 to communicate\nwith the server, FreeTDS converts the UCS-2 to the client character set of your choice. \nTo set the client character set, you can set *client charset* in *freetds.conf*. See \n[The *freetds.conf* File](https://www.freetds.org/userguide/freetdsconf.html) and [Localization and TDS 7.0](https://www.freetds.org/userguide/Localization.html).\n\n## Encrypted connections to MSSQL\n\nIt is handled by FreeTDS, so this needs to be configured at the `freetds.conf`. Seee [The *freetds.conf* File](https://www.freetds.org/userguide/freetdsconf.html) and at `freetds.conf settings` look for `encryption`.\n\n## Support\n\nIf you find any bugs, or you would like to request enhancements, please submit your comments on the [project's GitHub Issues page](https://github.com/tds-fdw/tds_fdw/issues).\n\nAdditionally, I do subscribe to several [PostgreSQL mailing lists](https://www.postgresql.org/list/) including *pgsql-general* and *pgsql-hackers*. If tds_fdw is mentioned in an email sent to one of those lists, I typically see it.\n\n## Debugging\n\nSee [Debugging](tests/README.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftds-fdw%2Ftds_fdw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftds-fdw%2Ftds_fdw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftds-fdw%2Ftds_fdw/lists"}