File manager - Edit - /home/rbwebsco/sidrafran2.rb-webs.com/freetds11.tar
Back
etc/locales.conf 0000644 00000000562 15233171116 0007613 0 ustar 00 [default] date format = %b %e %Y %I:%M:%S:%z%p [en_US] date format = %b %e %Y %I:%M:%S:%z%p language = us_english charset = iso_1 [es_ES] date format = %b %d %Y %I:%M%p language = spanish charset = iso_1 [pt_BR] date format = %d/%m/%Y %H:%M language = Portuguese charset = iso_1 [it_IT] date format = %d/%m/%Y %H:%M language = Italiano charset = iso_1 etc/pool.conf 0000644 00000000333 15233171116 0007136 0 ustar 00 [global] min pool conn = 5 max pool conn = 10 max member age = 120 [mypool] user = guest password = sybase database = tempdb server = JDBC_42 port = 5000 etc/freetds.conf 0000644 00000002202 15233171116 0007616 0 ustar 00 # # This file is installed by FreeTDS if no file by the same # name is found in the installation directory. # # For information about the layout of this file and its settings, # see the freetds.conf manpage "man freetds.conf". # Global settings are overridden by those in a database # server specific section [global] # TDS protocol version tds version = auto # Whether to write a TDSDUMP file for diagnostic purposes # (setting this to /tmp is insecure on a multi-user system) ; dump file = /tmp/freetds.log ; debug flags = 0xffff # Command and connection timeouts ; timeout = 10 ; connect timeout = 10 # To reduce data sent from server for BLOBs (like TEXT or # IMAGE) try setting 'text size' to a reasonable limit ; text size = 64512 # If you experience TLS handshake errors and are using openssl, # try adjusting the cipher list (don't surround in double or single quotes) # openssl ciphers = HIGH:!SSLv2:!aNULL:-DH # A typical Sybase server [egServer50] host = symachine.domain.com port = 5000 tds version = 5.0 # A typical Microsoft server [egServer73] host = ntmachine.domain.com port = 1433 tds version = 7.3 usr/share/doc/alt-freetds11/AUTHORS.md 0000644 00000005324 15233171116 0013253 0 ustar 00 Brian Bruns <brian@bruns.com> Started this crazy thing James K. Lowden <jklowden@speakeasy.org> Documentation, maintainer from 2003 to early 2015. Marc Abramowitz <msabramo@gmail.com> Testing and patches, Travis CI tests. Koscheev Andrey <andrey@eller.cz> Negative money patch. Craig A. Berry <craigberry@mac.com> VMS support. James Cameron <james.cameron@compaq.com> GNU standards compliance and minor fixes. Peter Deacon <peterd@iea-software.com> Lots of help, testing and patches. John F. Dumas <jdumas@locutus.kingwoodcable.com> Patch to fix memory leaks. David Fraser <david@abelon.com> Testing and patches (NO-DM support). Scott Gray <gray@voicenet.com> TDS 7.0 numeric support and bug fixes. Alex Hornby <alex@anvil.com> Testing and patches. Mihai Ibanescu <misa@dntis.ro> GNUified the packet. Gregg Jensen <greggj@savvis.com> Message handlers and extra datatype support and some sybperl stuff? Viktar Klimkovitch <vklimk@yahoo.com> ODBC fixes to get libodbc++ working. Bob Kline <bkline@rksystems.com> NTEXT support. Lothar Krauss <lkrauss@wbs-blank.de> ODBC fixes. Steve Langasek <vorlon@dodds.net> Off by one fixes and autoconf byte size thing. Debian package maintainer. Mark J. Lilback <mark@lilback.com> Implementation of dbstrlen and dbstrcpy. Kevin Lyons <kevin@nol.org> Various TDS bug fixes. Steve Murphree <smurph@smcomp.com> Contributed a huge ODBC patch. Dennis Nicklaus <nicklaus@crusher.fnal.gov> vxWorks port and fixes for dbdata() and SYBVARBINARY. Arno Pedusaar <psaar@fenar.ee> Donated his TDS4.2 code to the cause. Brandon M. Reynolds <breynolds@comtime.com> Fix for arbitrarily large queries under dblib. Thomas Rogers <tom.rogers@ccur.com> Testing and patches. Mark Schaal <mark@champ.tstonramp.com> Cleaned up message handling, bug fixes, ctlib unittests. Ken Seymour <KenASeymour@yahoo.com> ODBC Driver Fixes. Craig Spannring <cts@internetcds.com> JDBC driver and CVS repository. Martin Spott <mas@plesnik.de> Testing and patches. Sam Tetherow<tetherow@nol.org> Various TDS bug fixes. Bill Thompson <ThompBil@exchange.uk.ml.com> BCP patches and datetime fixes. Patrick van Kleef <pkleef@openlinksw.com> Various bug fixes, dbcanquery() and odbc version checks. Geoff Winkless <geoff@farmline.com> Lost connection stuff. Nicholas S. Castellano <entropy@freetds.org> Many bug fixes and improvements, contributor of fisql application. Frediano Ziglio <freddy77@gmail.com> Lot of contributions, maintainer since 2015. Special thanks to Michael Peppler <mpeppler@peppler.org>, author of the DBD::Sybase Perl module. Thanks go to the folks at A2i, Inc. (http://www.a2i.com) for funding the development of dblib host file bulk copy and writetext support, and to Dave Poyourow there for helping with the debugging. usr/share/doc/alt-freetds11/COPYING.txt 0000644 00000043254 15233171116 0013461 0 ustar 00 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. usr/share/doc/alt-freetds11/ChangeLog 0000644 00000016705 15233171116 0013363 0 ustar 00 Author: Frediano Ziglio <freddy77@gmail.com> Date: Sun Mar 29 20:38:27 2026 +0100 odbc: Update SQLGetInfo(SQL_DESCRIBE_PARAMETER) SQLDescribeParam was implemented, so return it's supported. Author: Frediano Ziglio <freddy77@gmail.com> Date: Mon Mar 23 18:31:52 2026 +0000 odbc: Fix SQL_DESC_BIND_OFFSET_PTR handling Use sql_desc_bind_offset_ptr not only on structure binding or on following (not first) rows. SQLExtendedFetch uses sql_desc_bind_offset_ptr so do not clear it. Add a test, partially from Bob Kline. This fixes https://github.com/FreeTDS/freetds/issues/716. Author: Frediano Ziglio <freddy77@gmail.com> Date: Sat Feb 14 17:16:58 2026 +0000 utils: Fix compatibility with Nettle 4 library Hash length parameter was removed from nettle_md5_digest. Method suggested by Satadru Pramanik. Author: Frediano Ziglio <freddy77@gmail.com> Date: Thu Feb 19 04:48:16 2026 +0000 odbc: Fix leak in SQLDriverConnect if string is invalid Login structure was not freed if odbc_parse_connect_string returned false, which can simply happen if the string has an invalid syntax. Author: Frediano Ziglio <freddy77@gmail.com> Date: Mon Feb 16 21:45:25 2026 +0000 tds: Avoid overflow converting numeric to string Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov> Date: Thu May 9 16:36:31 2024 -0400 Improve support for TDS 5 (Sybase) bulk transfers. * Read defaults, send them back explicitly as needed, and clean up their storage afterwards. * tds5_bcp_add_variable_columns: ** Send spaces in lieu of fully empty SYB(VAR)CHAR data. ** Send correct textpos values in all cases. ** When writing the adjustment table, avoid a potential Sybase "row format error" by eliding the (effective) column count when it would have repeated the largest adjustment table entry. * tds_deinit_bcpinfo: Free and reset current_row for transfers in. Avoid potentially trying to interpret fragments of outgoing TDS data as BLOB pointers. Author: Frediano Ziglio <freddy77@gmail.com> Date: Mon Dec 1 19:37:18 2025 +0000 odbc: Fix for SQL_COPT_SS_OLDPWD attribute This attribute allows to change the password while logging to the server. Code was wrongly taking the length of the attribute in characters instead of bytes causing a failure using wide function. Author: Frediano Ziglio <freddy77@gmail.com> Date: Wed Nov 19 23:57:13 2025 +0000 Fix ABI breakage for tdsdump_open under Windows tdsdump_open is exported by our DB-Library implementation. Before version 1.5 tdsdump_open always accepted a "const char*" string, however in 1.5 this was changed to "const wchar_t*" for Windows to support Unicode. This broke ABI for Windows. Provide tdsdump_open with old ABI and a new tdsdump_wopen (Windows only). Author: Matt McNabb <matthew.mcnabb@vmssoftware.com> Date: Thu Oct 30 21:26:10 2025 -0400 odbc: Re-prepare a prepared query if it never returned a handle Merge: b95ce1e6 e39070ff Author: Frediano Ziglio <freddy77@gmail.com> Date: Thu Oct 30 06:30:11 2025 +0000 Merge fix for SQLPutData Author: Frediano Ziglio <freddy77@gmail.com> Date: Thu Oct 23 19:45:03 2025 +0100 odbc: Fix inserting too much data with SQLPutData An error is returned if column is truncate. Author: Frediano Ziglio <freddy77@gmail.com> Date: Wed Oct 8 16:35:57 2025 +0100 odbc: Accept any variable data type using DATA_AT_EXEC length Reported in https://github.com/FreeTDS/freetds/issues/667. The behaviour is consistent with Microsoft driver. This caused an issue using PHP ODBC PDO driver. Author: Frediano Ziglio <freddy77@gmail.com> Date: Tue Oct 14 21:35:22 2025 +0100 ci: Update win-iconv version Pick up more recent master version, already including my fix. Author: Frediano Ziglio <freddy77@gmail.com> Date: Wed Sep 10 17:53:56 2025 +0100 dblib: Expand buffers to hold converted floating point Make sure there's enough space for converting the numbers. This fixes fisql command printing real/float values. Author: Frediano Ziglio <freddy77@gmail.com> Date: Thu Aug 28 21:02:57 2025 +0100 Use CORK flag correctly, do not delay partial packets Resetting TCP_CORK flag in Linux causes the partial packets to be flushed however if the queue is full partial packets are not moved to the queue. Partial packets are then processed when space is available. However FreeTDS used to set again the flag causing partial packets to be delayed. Remove that delay reducing latency. Merge: 569401e6 65efc2d5 Author: Frediano Ziglio <freddy77@gmail.com> Date: Wed Jun 25 17:15:09 2025 +0100 Merge test for vasprintf for VMS Author: Craig A. Berry <craigberry@mac.com> Date: Tue Jun 24 10:38:20 2025 -0500 VMS has had vsnprintf for a long time And this allows for a better vasprintf fallback for systems where vasprintf is not available. Author: Craig A. Berry <craigberry@mac.com> Date: Mon Jun 23 07:26:27 2025 -0500 Better test for vasprintf on VMS Recentish CRTLs do have it, but the test I added 23 years ago was not correctly detecting it. Author: Frediano Ziglio <freddy77@gmail.com> Date: Wed Jun 18 11:08:10 2025 +0100 tds: Fix bulk copy in for Microsoft XML type As documented, and tested, the protocol requires the usage of NVARCHAR type, not XML, which is refused causing an error. Merge: 349445e4 6c532e2a Author: Frediano Ziglio <freddy77@gmail.com> Date: Sat May 31 17:43:29 2025 +0100 Fix conversion bound checks, tsql message formatting Author: Frediano Ziglio <freddy77@gmail.com> Date: Sat May 31 17:02:34 2025 +0100 tds: Fix bound check conversion (float -> uint) Converting from floating point to unsigned int the bound check was incorrect resulting in invalid conversions if the input value was not in range. Author: Frediano Ziglio <freddy77@gmail.com> Date: Sat May 31 17:00:18 2025 +0100 tsql: Avoid possible invalid type formatting a message Specifically: tsql.c: In function ‘do_query’: tsql.c:292:80: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘__suseconds64_t’ {aka ‘long long int’} [-Wformat=] 292 | sprintf(message, "Total time for processing %d rows: %ld msecs\n", | ~~^ | | | long int | %lld 293 | rows, (long) ((stop.tv_sec - start.tv_sec) * 1000) + ((stop.tv_usec - start.tv_usec) / 1000)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | __suseconds64_t {aka long long int} long should be enough for 49 days in case of 32 bit, I hope your query doesn't take so long. Author: Frediano Ziglio <freddy77@gmail.com> Date: Mon Apr 21 15:58:08 2025 +0100 ctlib: Remove leak freeing command Release cursor while freeing command. usr/share/doc/alt-freetds11/TODO.md 0000644 00000007732 15233171116 0012700 0 ustar 00 To Do List ========== This list is ordered top-to-bottom by priority. Things that are broken and need mending are at the top, followed by things that should work before the next release, followed by features that should be added/fixed/reworked (grouped by library). Everyone is encouraged to add to the list. Developers can do it directly; anyone else can post a patch to SourceForge. In this way we can communicate with each other about the project's priorities and needs. Must be fixed: ==== Work in progress: ==== * be able to disable iconv for BCP (see Sybase documentation) I have a patch to disable it, how to handle NVARCHAR? -- freddy77 For future versions (in priority order within library): All ---- * Cache protocol discovery (TDSVER=0.0). Save port/instance into some permanent storage. tsql should report progress in verbose mode. * retain values used from freetds.conf, so we can report them. * add a way for tsql to report host, port, and TDS version for the connection it's attempting. Actually libTDS does the name resolution in tds_connect and then just connect so there is no way for tsql to report these information. * review the way parameters are packed (too complicate, see ctlib bulk, cf "bulk copy and row buffer") * improve cursor support on dblib and ctlib * read on partial packet, do not wait entire one * support for password longer than 30 characters under Sybase (anybody know how ??) * under Sybase using prepared statements and BLOBs we shouldn't try to prepare every time (cache failure preparing, see odbc unittests logs, binary_test) done in ODBC ?? * Native bcp has no iconv support; character bcp files are assumed be encoded with the client's charset. More flexibility one both sides would be good. * encrypted connection for Sybase db-lib ---- * add DBTEXTLIMIT (dbsetopt), PHP require it to support textlimit ini value ct-lib ---- * dynamic placeholders (DBD::Sybase) * ct_option() calls (CS_OPT_ROWCOUNT, CS_OPT_TEXTSIZE, among others) * async function, async calls (dbpoll() and friends) * support all type of bind in ct_bind (CS_VARBINARY_TYPE and other) search "site:.sybase.com CS_VARBINARY ct_bind" on google for more info * complete sqlstate and other field in message (for Python) odbc ---- * Star Office complains that these TypeInfo constants are not implemented in SQLGetInfo: 47 SQL_USER_NAME (handle environment callbacks) do a "SELECT USER_NAME()". If data pending MS do another connection with same login. * SQLNativeSql and fill SQLGetInfo according (mssql7+ handle odbc escapes directly) * it seems that if statement it's wrong and we issue SQLPrepare on SQLExecute it try to send unprepared dynamic... state on dynamic?? * odbc array binding test large field (like image) have language queries some limits? do we have to split large multiple queries? * report error just before returning SQL_ERROR from inner function? * handle async flags ?? * handle no termination on odbc_set_string* Test and fix ---- * hidden fields (FOR BROWSE select, see flag test on tds) * what happen if we bind to an hidden field?? * if we use SQLGetData?? * if we request information with SQLDescribeCol/SQLColAttribute(s)/ SQLGetDescField?? * as you noted returning # columns hidden fields are not counted (there is however a setting which is a mssql extension which threat hidden columns as normal) (cfr "SQLNumResultCols() is wrong (+1)" Jan 8 2008) * test: descriptors work * what happen to SQL_DESC_DATETIME_INTERVAL_CODE and SQL_DESC_CONCISE_TYPE changing only SQL_DESC_TYPE (with SQLSetDescField) * test: set SQL_C_DEFAULT and call SQLFetch (numeric, others) * test: SQLGetStmtAttr(SQL_ATTR_ROW_NUMBER) * all binded parameters * no bind and sqlgetdata * before first fetch * after last fetch pool ---- * get connection pooling working with all protocol versions server ---- * Server API needs more work. It's in a quite ugly state. It's more experimental. Should be disabled by default to state it. usr/share/doc/alt-freetds11/README.md 0000644 00000005452 15233171116 0013065 0 ustar 00 README for FreeTDS 1.5 ==== *Release date 17th April 2025* **To build FreeTDS read the file [INSTALL](./INSTALL.md) or the [FreeTDS Users Guide](http://www.freetds.org/userguide/)** FreeTDS is a free implementation of Sybase's DB-Library, CT-Library, and ODBC libraries. FreeTDS builds and runs on every flavor of unix-like systems we've heard of (and some we haven't) as well as Win32 (with or without Cygwin), VMS, and Mac OS X. Failure to build on your system is probably considered a bug. It has C language bindings, and works also with Perl and PHP, among others. FreeTDS is licensed under the GNU LGPL license. See [COPYING_LIB.txt](./COPYING_LIB.txt) for details. Other files you might want to peruse: * [AUTHORS](./AUTHORS.md) Who's involved * [NEWS](./NEWS.md) Summary of feature changes and fixes * [TODO](./TODO.md) The roadmap, such as it is Also, [api_status](./doc/api_status.txt) shows which functions are implemented. For details on what's new in this version, see NEWS. For unbearable detail, see git log. Documentation ============= A User Guide, in XML and HTML form, is included in this distribution. Also included is a reference manual, generated in HTML with Doxygen. "make install" installs the HTML documentation, by default to /usr/local/share/doc/freetds-<version>. Note to Users ============= Submissions of test programs (self-contained programs that demonstrate functionality or problems) are greatly appreciated. They should create any tables needed (since we obviously don't have access to your database) and populate them. Unit tests for any of the libraries is appreciated Notes to Developers =================== The code is split into several pieces. 1. `tds` directory is the wire level stuff, it should be independent of the library using it, this will allow db-lib, ct-lib, and ODBC to sit on top. 2. `db-lib` directory. This is the actual db-lib code which runs on top of tds. 3. `ct-lib` directory. This is the ct-lib code which runs on top of tds. 4. `server` directory. This will be a set of server routines basically to impersonate a dataserver, functions like send_login_ack() etc... 5. `odbc` directory. ODBC implementation over tds. Uses iODBC or unixODBC as a driver manager. You need to have one of those if you are using the ODBC CLI. 6. `unittests` directories. Test harness code for ct-lib, db-lib, ODBC and libtds. 7. `samples` directories. Sample code for getting started with Perl, PHP, etc... 8. `pool` directory. A connection pooling server for TDS. Useful if you have a connection limited license. Needs some hacking to get configured but is quite stable once configured correctly. Contact the list if interested in how to use it. Please look at doc/getting_started.txt for a description of what is going on in the code. usr/share/doc/alt-freetds11/COPYING_LIB.txt 0000644 00000061447 15233171116 0014153 0 ustar 00 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the library's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. <signature of Ty Coon>, 1 April 1990 Ty Coon, President of Vice That's all there is to it! usr/share/doc/alt-freetds11/INSTALL.md 0000644 00000001324 15233171116 0013230 0 ustar 00 FreeTDS Installation ==== If you are installing from git repository please read [INSTALL.GIT](./INSTALL.GIT.md) For complete instructions, see the [FreeTDS Users Guide](http://www.freetds.org/userguide/). It is included in the distribution inside "doc/userguide/index.html`. Brief Instructions ---- ``` $ ./configure --help $ ./configure $ make $ make install ``` Post Install ==== * Edit the `/usr/local/etc/freetds.conf` file to add servers. * Test the connection with `/usr/local/bin/tsql` * Build and test the package that requires FreeTDS. If you want to build the ODBC driver, you'll probably first want to install a Driver Manager (on Unix-like systems). For any other information please see the Users Guide. usr/share/doc/alt-freetds11/NEWS.md 0000644 00000112153 15233171116 0012701 0 ustar 00 $Id: 73172b888449ed18e50fb44dc7f823fddbfb3611 $ Summary of Changes in release 1.5 -------------------------------------------- User visible (not in a particular order): - Generic: - Do not write to stdout/stderr; - (\*) Fix certificate check for hostnames with wildcards; - (\*) Update to Autoconf 2.71; - (\*) Fix conversions of "-0" numeric; - (\*) Minor compatibility for 32 bit for bulk copy; - Distribute OpenSSL libraries with Appveyour artifacts; - Use Unicode and wide characters for file paths for Windows; - Remove ANSI encoding code from SSPI code, always full Unicode; - (\*) Set control method for final OpenSSL BIO to avoid some errors; - (\*) Get Windows code page using Windows API for compatibility; - (\*) Do not try to use `pthread_cond_timedwait_relative_np` on newer Android; - Fix compatibility connecting to some old MSSQL 2000 server; - (\*) Support Sybase server not configured with UTF-8 charset; - (\*) Change some file license from GPL to LGPL; - (\*) Support very old Sybase ASE versions; - (\*) Ignore query errors during connection initial setup increase compatibility with different servers like OpenServer; - Support `strict` encryption for naked TLS (TDS 8.0); - (\*) Don't leak allocations on syntax errors converting to binary; - Accommodate FreeBSD/Citrus iconv; - Fall back on unsupported address families locking for host address; - Avoid potential hangs on short replies reading TDS packets; - Add support for TDS 8.0; - Reject invalid NULL data in `tds7_send_record` (bulk transfer); - Allows `freetds.conf` to be stored in `~/.config` (Unix). - ODBC: - Fixed some attribute size for 64 bit platforms (now more compatible with MS driver); - (\*) Prevent setting some wrong type in internal decriptors; - (\*) Fix leak in `odbc_parse_connect_string`; - Fix an issue compiling bcp test on 32 systems with unixODBC; - (\*) Fix getting `SQL_ATTR_METADATA_ID` attribute; - Check for maximum value for `SQL_ATTR_QUERY_TIMEOUT`; - (\*) Return better error for invalid character set; - Check errors from `SQLInstallDriverExW` and `SQLRemoveDriver`; - Update some driver registration field for Windows; - (\*) Remove minor leak parsing connection string; - Add `Encrypt` and `HostNameInCertificate` settings; - (\*) Fix bug cancelling not active statements; - Fix `SQLGetInfo` `SQL_DRIVER_HSTMT` and `SQL_DRIVER_HDESC`; - Avoid shared object version for ODBC driver; - Allows `SERVER` to override `DSN` or `SERVERNAME` settings; - Allows to set version to `AUTO` from Windows dialog; - (\*) Fix handling of `SQL_C_STINYINT`; - Fix return value when bulk operation not using status array fails; - Implement `SQLDescribeParam` using `sp_describe_undeclared_parameters`. - Applications: - datacopy: - Allows copy when `dest_collen` > `src_collen`; - Increase CREATE TABLE command buffer to accommodate larger queries. - defncopy: - (\*) Use memory instead of temporary file; - (\*) Fix MS column length for N(VAR)CHAR types; - (\*) Quote strings and identifiers; - (\*) Handle correctly order of index recordset; - (\*) Quote key index names. - CT-Library: - Error reporting more compatible with Sybase; - Return CT-Library type values, not TDS ones; - Fix `*resultlen` for conversions to SYBIMAGE from `cs_convert`; - Populate `datafmt->format` to avoid not initialized values; - More debugging on not implemented `bcp_colfmt_ps`; - Makes sure we don't use a negative number as string length; - Use client type, not propagate TDS one; - (\*) Fix crash using `ct_command` with `CS_MORE` option; - (\*) `_blk_get_col_data`: Consistently return `TDS_FAIL` on failure; - (\*) Formally define `BLK_VERSION_{155,157,160}`; - (\*) Cap binary/image copying to the destination length; - (\*) Conditionally distinguish NULL and empty results; - (\*) Issue an error for unsupported server types from `ct_describe`; - Add support for setting hints for bulk copy using `blk_props`; - Support getting `CS_ENDPOINT` (socket file descriptor) using `ct_con_props`; - Support getting `CS_PRODUCT_NAME` using `ct_con_props`; - Introduce `CS_INTERRUPT_CB` and corresponding return values: `CS_INT_*`; - Better support new date/time types (DATETIME2, etc.) in bulk copy; - Report system errors' descriptions. - DB-library: - Improve error reporting; - Allows to set port number with `DBSETLPORT`; - Allows encryption option. - pool: - Disable Nagle algorithm on user socket for performance; - (\*) Ignore extension in login packet for compatibility. - server: - Reply correct version for TDS 7.4; - Avoid leaks in `tds_get_query_head`; - Set `SO_REUSEADDR` option; - Better support for string conversion and UTF-8; - Improve sending data, fix sending metadata; - Update prelogin reply allowing TDS 7.2; - Fix `tds_send_login_ack` product name length; - Support no-ASCII characters in environment names; - Return 0 rows during login; - Pass correct packet size environment in test server; - Do not overwrite error before displaying it; - Improve message writing functions; - Set `TCP_NODELAY` after accepting connected sockets. (\*) Feature backported in stable 1.4 branch. Implementation: - Remove various minor leaks; - Remove some potential `NULL` dereference; - (\*) Add support for `SYBSINT1` type conversion; - Improve GNU compatibility in CMake using `GNUInstallDirs`; - Remove many warnings compiling code with stricter options; - Optimize numeric precision change; - Use more `bool` type for boolean instead of integer; - Minor compatibility with tests and Sybase/SAP libraries; - Avoid some warnings from CMake; - Various improvements to bounce utility: - Allows multiple connections; - Allows to specify a server name; - Allows to write dumps. - Use 64 bit constants, add `(U)INT64_C` macros; - Move `tds_new` macros to `include/freetds/macros.h`; - Move `tds_strndup` to utils; - Add GitHub actions to CI; - Allows `FREETDS_SRCDIR` overrides for tests; - Avoid potential zero-byte allocations (whose behavior is undefined) in libTDS; - Unify header guards definitions; - Unify tests includes in ctlib; - Accommodate Windows static builds; - Inform CMake of some accidentally Autotools-only tests; - Add Visual Studio 2022 to Appveyor test matrix; - Add `tds_socket_set_nodelay` utility; - Change `TDSCOLUMN::column_bindlen` field to signed type; - Use `TDS server` instead of `Adaptive Server` in error messages; - Add and reuse `TDS_END_LEN_STRING` utility; - Acknowledge non-exhaustive `TDS_SERVER_TYPE` switch statements; - Use replacement `getopt` in tests for more compatibility; - Include `stdint.h` in Visual Studio if available. Summary of Changes in release 1.4 -------------------------------------------- User visible (not in a particular order): - Fix some numeric conversion checks; - Always use Unicode for SSPI allowing not ASCII to work; - Improve BCP copy, especially for Sybase; - Better error reporting for ICONV failures; - Disable TLSv1 by default; - ODBC: partial TVP support (missing data at execution); - ODBC: support for quoted string in connection string; - CT-Library: support large identifiers; - CT-Library: report appropriate severity values; - apps: datacopy report errors on standard error; - pool: use poll instead of select to support more connections. Implementation: - Use more bool type for boolean instead of integer; - more macros for ODBC tests to encapsulate some ODBC API. Summary of Changes in release 1.3 -------------------------------------------- User visible (not in a particular order): - Generic: - Support UTF-8 columns using MSSQL 2019; - Do not accept TDS protocol versions "4.6" (never really supported) and "8.0"; - Minor portability issues; - Fix log elision for login; - Detect some possible minor memory failure in application; - Support long (more than 64k) SSPI packets (never encountered but you never know); - Fix unicode columns for ASA database; - Avoid using BCP with old protocols; - (\*) Fix bulk copy using big endian machines; - (\*) Fix Sybase uni(var)char and unsigned types for big endian machines; - (\*) Do not send nullable data during bulk copy if type is not nullable; - ODBC: - Added "Timeout" setting; - Applications: - Improve defncopy utility: - Fix some declaration; - Fix Sybase support; - (\*) Fix datacopy and freebcp logging ; - CT-Library: - Minor fix for variant type; - Better support for timeout setting; - (\*) Support some missing types (like nullable unsigned integers) for Sybase; - DB-library: - Unify date format (all systems can use the same syntax); - (\*) Allows to pass 0 as type for bcp_bind; - (\*) Fix DBSETLSERVERPRINCIPAL macro; - (\*) Do not limit queries length for bcp using Sybase; - (\*) Add KEEP_NULLS to BCP hints. (\*) Feature backported in stable 1.2 branch. Implementation: - Move replacement headers under freetds directory for coherence with other internal headers; - Lot of style updates; - Optimize UTF-8 encoding for ODBC, reuse common code. Summary of Changes in release 1.2 -------------------------------------------- User visible (not in a particular order): - Sybase server: - All strings are now converted as MSSQL; - Support kerberos login; - DB-Library: add DBSETNETWORKAUTH, DBSETMUTUALAUTH, DBSETDELEGATION and DBSETSERVERPRINCIPAL; - CT-Library: add CS_SEC_NETWORKAUTH, CS_SEC_NETWORKAUTH, CS_SEC_NETWORKAUTH and CS_SEC_NETWORKAUTH; - Bulk copies: - DB-Library: fix trim of unicode fields; - (\*) Apply character conversion for Sybase, like MSSQL; - (\*) Ignore computed columns; - (\*) Properly support multibyte strings in column names; - (\*) DB-Library: stop correctly on BCPMAXERRS setting; - (\*) DB-Library: do not try to convert skipped rows reading file allowing for instance to load CVS files; - (\*) CT-Library: added CS_DATABASE property to allows to connect correctly to Azure servers; - (\*) Improve support for MS XML columns for both DB-Library and CT-Library; - (\*) Fix some issues with MSSQL server redirection (used for instance in Azure); - (\*) Change SQL_DESC_OCTET_LENGTH value for wise character columns; - Better support for SQL_VARIANT: - Better column checks; - (\*) CT-Library: now supported, columns are returned as CS_CHAR_TYPE; - Some updates to server part: - Set correctly initial state; - IPv6 support; - Fix TDS 7.2 logins; - Support extended character using domain logins under Unix; - Improve MARS: - Less memory copies; - (\*) Remove possible deadlock; - Handle wrapping sequence/window numbers; - Make sure we sent the wanted packet; - (\*) Support UTF-16 surrogate pairs in odbc_wide2utf and odbc_set_string_flag fixing some character encoding support; - (\*) Fix multiple queries, used by ODBC to optimize data load; - (\*) Improve emulated parameter queries, fixing minor issues and reducing memory usage; - Support DBVERSION_UNKNOWN in dbsetlversion (will use automatic detection); - CT-Library: define CS_MIN_SYBTYPE and CS_MAX_SYBTYPE; - (\*) CT-Library: fix cs_will_convert accepting library constants, not libTDS. (\*) Feature backported in stable 1.1 branch. Implementation: - User guide converted to XML; - Always use little endian on network level, simpler and faster; - Converted some files to markdown; - Optimize bytes endianess conversion; - Made character lookup faster making character conversion quicker; - Optimize data padding in CT-Library; - Fix some build dependencies causing some files to not be properly recompiled during development; - Add "freeze" support allowing to pause sending in order to simplify lengths computations sending data. Summary of Changes in release 1.1 -------------------------------------------- User visible (not in a particular order): - Changed default TDS protocol version during configure to "auto". Versions 4.2 and 7.0 are no longer accepted for default, you may still specify an explicit version to connect to obsolete servers ("auto" won't attempt these versions); - allows to disable TLS 1.0 support; - pool server allows to specify different username/password for server and clients allowing to hide internal server logins; - tsql utility now send final partial query to server to avoid to have to specify a final "GO" line to terminate commands; - better support for Microsoft cluster, client will attempt multiple connection to server at the same time if DNS reply multiple IPs; - MONEY/SMALLMONEY types are now formated with 4 decimal digits to avoid truncation; - MARS support is now compiled by default; - pool server is now compiled by default; - Fixed SQL_ATTR_LOGIN_TIMEOUT for ODBC; - Fixed large integer numbers for ODBC RPC constants; - Fixed encrypted logins if "auto" protocol version is used; - Support CS_TIMEOUT, CS_LOGIN_TIMEOUT and CS_CLIENTCHARSET properties under CTLibrary; - Added a dbacolname function in DBLibrary, similar to dbcolname but for compute columns (mainly for Sybase now, Microsoft removed support for compute columns); - NTLMv2 is now on by default. Implementation: - Improved UTF-8 performances; - Use more stdint.h style definitions (like uint32_t); - Use bool type instead of int; - pool server compile under Windows too (not as capable as Unix version); - CMake build is now able to do an installation; - Added a src/utils directory to collect all common code not strictly related to replacements or TDS; - Simplified makefiles; - Support CP1252 encoding in internal trivial iconv; - Better ODBC detection. Allows to specify a directory with --with-iodbc to specify custom iOBDC. Summary of Changes in release 1.0 -------------------------------------------- User visible (not in a particular order): - Removed "8.0" from protocol version string accepted. Please update configuration files; - Default protocol version is now auto. This could slow down connection but make user experience less painful; - Sybase encrypted login. Set encryption to get it; - Support protocol version 7.4; - Add intent support to specify we don't want to change data; - Allow to attach database file during the login (MS SQL Server); - Support for Sybase time/date/bigdate/bigdatetime; - Pool is working again; - ODBC BCP (not complete); - Improved dbconvert and dbconvert_ps (more compatible); - Fixed dbspid; - Improved ODBC type information; - Better certificate verification; - AppVeyor is used for every build; - Try all IPs from DNS. This allows SQL Cluster connection to secondary servers. Implementation: - Removed Nmake support; - Type conversions simplified; - Better type handle code. Summary of Changes in release 0.95 -------------------------------------------- User visible (not in a particular order): - Support for build with CMake under Windows. - Support MSSQL 2008: - new date/time types; - NBCROWs; - able to retrieve CLR UDT types in binary format. - Moved from CVS to git. - Support MARS under ODBC. - IPv6 support. - Support unsigned Sybase types. - Sybase use some characters conversion like MSSQL. - Bulk-copy improvements: - more types; - support for empty fields; - no needs for seekable file; - avoid possible buffer overflows; - less memory consumption; - handle different BIT fields in Sybase; - -T option for datacopy. - datacopy: - prompting for password (use "-" password on command line); - empty user/password (to use Kerberos). - Support for query notifications in ODBC. - Support for protocols 7.2 and 7.3 under dblib and ctlib. - dblib: - dbpivot extension; - dbprcollen extension to get printable column size; - add DBCOL2 structure for dbtablecolinfo; - support DBTEXTSIZE option for dbsetopt; - support SRCNUMERICBIND and SRCDECIMALBIND binding; - DATETIME2BIND extension binding to support new mssql 2008 type; - ODBC: - add SQL_INFO_FREETDS_TDS_VERSION option to SQLGetInfo to retrieve FreeTDS version; - add --enable-odbc-wide-tests configure option to use wide functions in unit tests. - Better thread support. - Allow to specify server SPN for GSSAPI. - Sybase graceful disconnects. - Better support for VARCHAR(MAX)/VARBINARY(MAX). - Better error reporting from login failure. - More strict test for configuration errors, fails if configuration is wrong. - "use utf-16" option to enable use of UTF-16 for server encoding (MSSQL). - Remove support for Dev-C++. - Remove support for bad iconv, use libiconv instead (Tru64 and HP-UX should be affected), connect will fail. - New NTLM options: - "use lanman"; - "use ntlmv2". - New Kerberos options: - "realm" ("REALM" in ODBC); - "spn" ("ServerSPN" in ODBC). - New certificate options: - "ca file"; - "crl file"; - "check certificate hostname". - Many bug fixes, majors: - SSPI with Kerberos on some setup; - SQLCancel threading; - ctlib numeric; - ODBC statistic function quotings. Implementation: - Introdude streams support to make easier handling large data and making conversions faster. - Use array of flags to make faster to retrieve data type features. - Use callbacks for handling various type functions. - Optimize data conversions. - Store TDS packets in a new structure to handle multiple packets. - New DSTR implementation which use less memory. - Faster logging. - Put mostly data handling in src/tds/data.c. - Move mostly headers to include/freetds directory. - Add a include/freetds/proto.h header to separate protocol declarations. - Add src/tds/packet.c to separate code handling TDS packets. - Modify libTDS error codes, not only TDS_FAIL. - Use DSTR for names in TDSCOLUMN. - Generate graphs in Doxygen. Summary of Changes in release 0.91 -------------------------------------------- 1. Full Kerberos and SSPI support for passwordless login to Microsoft SQL Server from Unix and Windows clients. Includes Kerberos delegation option. 2. Full support for DB-Library under Win32/64 via NMAKE.EXE. 3. Built-in support for UTF-8. 4. Support for wide characters in ODBC. 5. Support for varchar(max) and varbinary(max). 6. Better thread-safety in ODBC. 7. Distinguish between connect and login errors. 8. Bulk-copy functions in CT-Library. TDS versions now reflect Microsoft's nomenclature. The previous version numbers (8.0 and 9.0) are now 7.1 and 7.2. See the UG for details. Executive Summary of Changes in release 0.82 -------------------------------------------- 1. timeout handling 2. encrypted connections 3. fisql (and odbc utilities) 4. autoconf improvements 5. 23,710 lines added or deleted (101,022 total). 6. 85 files added 7. 21 unit tests added Details ------- db-lib - timeouts work! - corrected dbnextrow - implemented dbsetnull and dbsetinterrupt - improved error reporting and checking - fixed rpc parameter processing, now php works correctly ct-lib - added cs_loc_alloc, cs_loc_drop, cs_locale implementations odbc - cursors (mssql) - fixed database setting - return error always if odbc returns SQL_ERROR - fixed SQLGetData result utilities - added support for NUL characters inside terminators in freebcp - added row termination and column termination option to tsql - new fisql application - new ODBC utilities documentation - significant updates to TDS protocol documentation - freetds.conf man page - added tenderfoot sample code general - fixed timeout handling - added freetds.conf option for encryption - added protocol version discovery - NTLM2 session response - read table and real column name from wire - experimental Kerberos support using gssapi - some optimizations for GCC4 - optimized conversions avoiding some memory copy - minor improves to server stuff - improved MingW compile (even cross one) - more verbose log for dblib and odbc - many test added 1 test for libTDS 1 test for ctlib 3 tests for dblib 13 tests for odbc libTDS API changes - tds_add_row_column_size removed - tds_alloc_row return now TDS_SUCCEED/TDS_FAIL - tds_alloc_compute_row return now TDS_SUCCEED/TDS_FAIL - removed TDSCOLUMN->column_offset - added TDSCOLUMN->column_data and TDSCOLUMN->column_data_free - added TDSCURSOR->type and TDSCURSOR->concurrency for mssql support - added fetch_type and i_row parameters to tds_cursor_fetch - added tds_cursor_update and tds_cursor_setname functions - made tds_alloc_get_string static - removed tds_free_cursor - added TDSCURSOR->ref_count - added tds_cursor_deallocated and tds_release_cursor to handle cursor release. tds_cursor_deallocated is called when cursor got deallocated from server while tds_release_cursor is called to decrement reference counter. Reference counter is used cause is difficult to trace pointer owner between libTDS and upper libraries - added TDS_COMPILETIME_SETTINGS->sysconfdir - changed DSTR_STRUCT structure to include dstr_size - changed DSTR type - error handler cannot return TDS_INT_EXIT - removed TDSSOCKET->query_timeout_func TDSSOCKET->query_timeout_param, TDSSOCKET->query_start_time - changed TDSLOGIN->host_name to client_host_name - changed TDSCONNECTION->host_name to client_host_name - changed TDSLOGIN->encrypted to encryption_level - changed TDSCONNECTION->encrypted to encryption_level - added TDSRESULTINFO->row_free handler to free row - added TDSCONTEXT->int_handler handler - removed tds_prtype - removed tds_alloc_param_row - added tds_alloc_param_data - added flags parameter to tds7_send_auth - removed tds_client_msg - added tdserror to report error - added flags parameter to tds_answer_challenge - added is_variable_type macro - added TDSCOLUMN->table_column_name - added tds parameter to tds_set_column_type - renamed BCPCOLDATA->null_column to is_null - added TDSMESSAGE->oserr - remove length, number_upd_cols and cur_col_list from TDSCURSOR (never used) - added new TDSAUTHENTICATION to handle authentication modules - added TDSSOCKET->authentication - added tds_ntlm_get_auth and tds_gss_get_auth - removed TDSANSWER - removed tds7_send_auth (use new tds_ntlm_get_auth) - added tds_get_int8 - add TDSPARAMINFO *params argument to tds_cursor_declare - add TDSPARAMINFO *params argument to tds_cursor_open - changed TDSSOCKET->rows_affected from int to TDS_INT8 - added TDSSOCKET->tds9_transaction (used internally for TDS9) - added TDSCONNECTION->server_host_name needed for Kerberos support * 0.64 - core library - reduced network bandwidth use on Linux and *BSD - do not free TDSSOCKET in tds_connect - moved network stuff into net.c - fixed conversion NUMERIC->NUMERIC changing precision/scale - added named instance support (mssql2k) - fixed cancel and timeout - added support for encrypted connection using mssql (using either GnuTLS or OpenSSL) - improved numeric conversions performance - improved debug logging (added "debug flags" option) - ctlib - ct_dynamic and friends (placeholder support) - dblib - more functions - made threadsafe - improved bcp - support for large files using BCP - fixed buffering - ODBC - fixed compute handling in ODBC - paramset support - constant parameters in rpc (ie {?=call func(10,?)} ) - configure use automatically odbc_config if available - compatibility - improve PHP support - improve DBD::ODBC support - partial dos32 support - improve JDBC support - added msvc6 project to build dblib library on windows - support long password on tsql for all platforms - improved pool server - RPMs - ODBC driver registration (in odbcinst.ini) - better dependency for RedHat and SUSE - a lot of fixes libTDS API changes - tds_connect does not free TDSSOCKET* on failure - TDSSOCKET->env is not a pointer anymore - tds_free_compute_result and tds_free_compute_results are now static - added TDSDYNAMIC->next for linked list - removed TDSCURSOR->client_cursor_id - use TDSCURSOR* cursor instead of TDS_INT client_cursor_it in tds_cursor_* functions - added const char* file param to tdsdump_dump_buf and tdsdump_log and added line information in level - changed tds_alloc_compute_results declaration, pass a TDSSOCKET* - removed tds_do_until_done (not used) - removed tds_set_longquery_handler function (not used) - changed some fields in TDSSOCKET - removed out_len (not used) - renamed cursor to cursors - removed client_cursor_id - added cur_cursor (instead of removed client_cursor_id) - dyns now a pointer to a pointer to first dynamic allocated - removed num_dyns (now useless with linked list) - removed chkintr and hndlintr (use longquery_*) - removed longquery_timeout (use query_timeout) - renamed longquery_func to query_timeout_func - renamed longquery_param to query_timeout_param - queryStarttime to query_start_time - add a DSTR instance_name to TDSCONNECTION - add tds7_get_instance_port - removed tds_free_all_dynamic - tdsdump_append now static - new tds_process_tokens to replace removed - tds_process_result_tokens - tds_process_row_tokens - tds_process_row_tokens_ct - tds_process_trailing_tokens - removed tds_ctx_set_parent/tds_ctx_get_parent, use parent member - added void * parent argument to tds_alloc_context - tds_process_tokens return a TDS_CANCELLED if handle cancellation - removed query_timeout_func and query_timeout_param from TDSCONNECTION and TDSLOGIN - add tds_free_row - renamed TDSLOCALE->char_set to server_charset * 0.63 - ODBC: use tds_dstr* functions to store descriptor information - header privatizations (removing tds.h dependency). This is quite important for future binary compatibility. - ODBC: SQLFetch returns error correctly - ODBC: fix problem rebinding parameters - ODBC: ability to fetch data types after prepare (needed for Oracle bindings and OTL library). - Builds cleanly under OS X. - Improved BCP support for NULL fields and native file format. - ct-lib: ct_blk support (bcp for ct-lib). - ct-lib: Cursors! - apps: added bsqldb and defncopy. - iconv: better collation support, e.g. SQL_Scandinavian_CP850_CI_AS * 0.62 - ct-lib: cursor support - fixed PHP problem handling empty recordsets. See messages on ML: Damian Kramer, September 23, "Possible bug in freeTDS" Steve Hanselman, September 16 "Issue with freetds 0.61.2 ..." - ODBC: improved, best error report - ct-lib: support ct_diag (for Python) - ODBC: fixed SQLMoreResults/SQLRowCount and batch behavior - ODBC: fixes call to {?=store(?)} - ODBC: multiple record with "select id,name from sysobjects where name = 'sysobjects'" - ODBC: fixed early binding - ODBC: autodetect iODBC or unixODBC during configure - ODBC: implemented option 109 in SQLGetConnectOption (for OpenOffice) - freebcp understand \n as newline. Also \r and \0 (null byte). - added --without-libiconv configure option to switch off iconv library - ODBC: test and fixes for NUMERIC parameter - ODBC: dynamic query - SQLPutData - Sybase and blobs ported code for string building from ODBC to libtds - extended TDSSOCKET::iconv_info as an array. Keep converters for non-UCS-2 server charsets. Every TDSCOLINFO holding character data should point to one of these elements. - dblib: src/dblib/unittests/t0017.c (bcp) fixed - changed tds_get_char_data(), ML 2 May 2003, "tds_get_char_data and iconv". - rewrote tds_iconv: - use iconv() signature. - rely on TDSCOLINFO::iconv_info for conversion descriptor, instead of inferring it from the column sizes. - on read error, emit Msg 2403, Severity 16 (EX_INFO): "WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?')." - on write error emit Msg 2402, Severity 16 (EX_USER): "Error converting client characters into server's character set. Some character(s) could not be converted." and return an error code. Do not proceed. - Cf. ML 16 Apr 2003. "conversion error management". - added doxygen to the nightly build - "make install" put the UG in PREFIX/share/doc/freetds/userguide - "make install" put doxygen html in PREFIX/share/doc/freetds/reference - moved website docs (not UG) to doc/htdoc, put in CVS - added bcp support to tds/dblib/ctlib. (started in dblib) - RPC stuff - added support for TDS 8.0 - TDS 7 Unicode to native charset conversion using iconv - autoconf the connection pooling stuff - DBLIB: output params - set database during login process - libtds: dynamic query - ctlib: null returns zero-length string (see "SELECT '' and TDS 7.0" in message list on 26 Jan 2003) * Jan 2003 - Version 0.61 - Dynamic SQL - Output parameters - Compute rows - Varbinary support - dsn-less ODBC connections - RPC support (db-lib) - Compatibility with DBD::Sybase 0.95 - 68 new functions! (see doc/api_status.txt) - Error/message handling rewritten, uses real error numbers - new sample programs - much cleaner code, warning-free compiles - namespace cleanup - public domain versions of functions for OSs that lack them - autoconf portability improvements - builds in HP-UX, Win32, and cygwin - No dependency on OpenSSL * Sep 2002 - Version 0.60 - Support for SQL Server 2000 datatypes and domain logins. - Support and convertibility of all major datatypes. - Much expanded coverage of the ODBC API. - An all-new BCP implementation, including host variable support. - Character set conversions, via the iconv library. - Threadsafe operation. * [late 2001?] - tdspool now working for big endian systems - Fixed mem leak in ctlib - Added some descriptive text to the PWD file - EINTR handling during login (Kostya Ivanov) - Added support for TLI style interfaces files (thanks Michael for explaining) - Added 'text size' config option which changes textsize on connect - Added preliminary TDS 8.0 support (no new datatypes supported though) - Added 'emulate little endian' config flag - Some TDS5 placeholder stuff. Not ready for primetime yet. - Fixed interfaces handling seg fault * Jul 2001 Brian Bruns <camber@ais.org> - Version 0.52 - Mem leak fixes in dbloginfree() and tds_free_env() (John Dumas) - Added support for new configuration format (freetds.conf) - unixODBC now working - Fixed error in two's complement function for money types - Added support for nullable bits (BITN) - checked in work on tds connection pooling server - added preliminary userguide (James Lowden and me) - a lot of work on ODBC driver, now works with PHP - added config options for iodbc/unixodbc (unixODBC doesn't actually work yet) - image -> char now works (verified with ctlib only) - varbinary -> char now works with destlen of -1 - New config routines - Free socket on login fail - 64bit patches - off by one error - numeric problem with 7.0 fixed - digit cutoff on numerics/floats fixed * Nov 2000 Brian Bruns <camber@ais.org> - Version 0.51 - removed all the old unittests from the samples directory - endian detection fixed - 'make check' and ctlib unittests (Mark) - TDS 7.0 fixes, numerics et al. (Scott) - dead connection handling (Geoff) - query timeout stuff (Jeff) * Dec 1999 Brian Bruns <camber@ais.org> - Version 0.50 - Added TDS 7.0 support for MS SQL 7 - Added hostfile bulk copy for dblib - Added writetext support for dblib - Added CS_CON_STATUS property to ctlib - Fixed bugs for ctlib version of PHP 3/4 - Many changes to text/image handling - New script for running the unittests - dbcancel/ct_cancel now working properly - inserts/updates now return proper rowcount - Numerous bug fixes * Sep 1999 Brian Bruns <camber@ais.org> - Version 0.47 - Added workaround for SQL 7.0 bug handling datetime/money for big endian (testing/bug report - Paul Schaap) - Added TDS 7.0 login function (untested) - Fixed many big endian bugs - Fixed some bus errors on Sparc - Fixed big endian detection - DBD::Sybase 0.19 now passes all tests - Fixed date bug working with PHP 3.x - binary/varbinary support added - Fixed Text datatypes in tds layer - More conversions implemented (Mark Schaal) - Fix make install for not overwriting interfaces (Michael Peppler) - CS_USERDATA now works - Numerous bug fixes (many people) * Thu Aug xx 1999 Brian Bruns <camber@ais.org> - Version 0.46 - Fixed floating type support - Fixed lots of little datatype conversion bugs - Fixed 5.0 login acknowledgement bug - Message processing was cleaned up (Mark Schaal) - Fixed login bug for SQL Server 7.0 - DBD::Sybase 0.19 now compiles and partially works (very partially) - Fixed Solaris #define clash - Numerous bug fixes * Thu Jun 03 1999 Brian Bruns <camber@ais.org> - Version 0.45 - Capabilities added to ctlib code - Numeric support working - MONEY to string conversions now support > 32 bit values - Fixed underread in message handling - Fixed various buffer overflow problems - Fixed NULL handling - Added support for length binding (copied arguement to ct_bind) - Converted ODBC to use iODBC driver manager - SQSH 1.7 runs - PHP 3.0.x with ctlib now runs * Thu Jan 14 1999 Brian Bruns <camber@ais.org> - Version 0.41 - Better row buffering (Craig Spannring) - CT-Lib code improved greatly - Closer behaviour to real dblib - Commonized datatype conversions - Server side code is running somewhat. - SQSH 1.6 running - More ODBC functionality - Many bug fixes - Lots of other stuff I've already forgotten * Sun Nov 22 1998 Brian Bruns <camber@ais.org> - Version 0.40 - Row buffering is now supported for dblib. - Better row handling (side effect of above) - Improved conversion code - Preliminary ODBC layer - PHP now runs basic scripts, maybe more - Many many bug fixes - General cleanup (better error handling, C++ friendly headers, etc...) * Fri Sep 04 1998 Mihai Ibanescu <misa@dntis.ro> - Version 0.31 - By default the install dir is /usr/local/freetds - The Makefile in the samples dir is automatically built from Makefile.am. The samples dir is not installed, only packaged in the distribution. * Wed Sep 02 1998 Brian Bruns <camber@ais.org> - Version 0.3 - Updated the AUTHORS file - FIXME Brian (added by misa) * Mon Aug 31 1998 Mihai Ibanescu <misa@dntis.ro> - Version 0.21 - GNUified - Fixed a couple of the TODO issues: byte order is automatically determined, and the TDS version is a configurable option - Modified the README file to reflect the new directory structure Pre-GNUification log by Brian <camber@ais.org>: 2/8/98 Should be able to send the first packet to a server soon, my output is only slightly different than open clients. This codes pretty crappy right now. I need to clean up alot of stuff, remove hardcode values, etc...but I'm anxious to see something work! 2/7/98 Broke the code up a bit, tds.c now handles all wire level stuff, dblib.c handles dblib specific stuff. So, in the future there can be ctlib.c and obdc.c can also sit on top of tds.c to handle the other CLIs 3/16/98 Been working on the code here and there...We can now send a query to the server, dbnumcols() and dbcolname() both work. Almost ready to get some data back. I put in a dummy dbbind to just handle strings so, I could do some work on dbnextrow(). However, we will have revisit almost everything later. 3/23/98 Haven't been able to work on it lately. Still trying to decide on the best way to propagate the row data from tds.c to dblib.c to the calling func. Not that hard, but nothing strikes me as the "Right Way" (tm). 4/2/98 Ok we are ready to release 0.01 (marked by the fact that a simple dblib program actually works!) 5/1/98 Haven't updated in quite a while. A few more dblib commands are supported. dbconvert() support is preliminary. Fixed alot of bugs. A little bit of cleanup. dbbind() sorta works now, needs work still. At least one mem leak that I know of (haven't gotten around to fixing it. Wish I had more time to work on it... 5/2/98 Decided to release what I have. executing sp_who seems to mostly work.. a step in the right direction. Version 0.02. Seem to have generated a little interest after mentioning it in a usenet post. 5/6/98 Can compile against sqsh!!! Did a reorg on tds.c, all dblib func that read data now go through tds_process_messages() which read the marker and calls other routines as necessary. sqsh's output is a little screwy (well I don't have a real dbprrow() yet, but the number of result sets coming back is too many). So, anyway Version 0.04 5/9/98 Decided to upload some new code, mostly just stubs. Sybperl compiles I can't get my perl to work with it. (I need to download perl and link statically, the one that comes on the system won't do). Anyway, most of dblib is present in stub form. 5/17/98 Managed to scrape up some time and release new code. Duplicate result sets went away, and handling of more datatypes (money, bit, more int stuff). Also, improved dbprhead()/row() function. 5/26/98 Ok, I'm doing the long overdue cleaning up of the code. All the kludges should be gone. Thanks, to everyone who contributed code/idea/corrections. 6/3/98 The majority of the overhaul is done...still some work to do, but this is much better than before. I'm bumping the version to 0.1 signifying that I actually use sqsh compiled against it on a regular basis. 6/5/98 TDS 4.2 support seems to be working properly 6/26/98 Gregg Jenson has added support for err and msg handling among other things. I've added some prelimary ctlib support (nothing working yet) 7/3/98 I think we are about ready to release 0.2. Gregg sent some datetime code which appears to work great. I added TDS 4.6 support (small changes really) and tested all the byte order issues on an RS/6000. Also, ctlib code will run the unittest.c and will compile all modules in sqsh 1.6, however there are many missing functions before it will link! 7/10/98 Haven't been able to work on it lately (moved this week). Anyway, trying to add some functions to server. 7/13/98 Tom Poindexter made some changes to get sybtcl to work. 8/8/98 Haven't had much time lately (again), however some small stuff has been fixed and the protocol version stuff has (mostly) been moved to a runtime option. sybperl is supposedly running for simple stuff. usr/share/man/man5/freetds.conf.5 0000644 00000014500 15233171116 0012540 0 ustar 00 .Dd May 2, 2017 .Os FreeTDS 1.5.16 .Dt FREETDS.CONF "FreeTDS 5" "FreeTDS Reference Manual" . .Sh NAME .Nm freetds.conf .Nd configuration file for FreeTDS . .Sh SYNOPSIS The .Pa freetds.conf file describes Sybase and Microsoft database servers to the FreeTDS library. It comprises sections headed by a servername, followed by a list of connection properties denoted as name-value pairs. Defaults are defined via a .Bq global section. This file supersedes the .Pa interfaces file that Sybase defines for the same purpose, although the latter is still supported. . .Sh DESCRIPTION A section begins with a servername \(em the name of the server \(em in square brackets. The servername is chosen at the client's descretion. (One exception: with Sybase ASA the servername must match the database name to be used.) .Pp Sections contain properties, one per line, in the form .Pp .Dl name = value .Pp where .Ar name is the connection property to be described. Servernames and properties are not case sensitive. Values are case-preserving i.e., copied literally. Comments begin with either a semicolon .Pq So ; Sc or pound sign .Pq So # Sc and continue to end of line. Blank lines are ignored. Whitespace surrounding the .So = Sc is ignored. . .Sh PROPERTIES .Bl -tag -width "emulate little endian" -compact . .It client charset encoding of client data; overrides locale(1) settings .Bl -tag -width "default:" -compact .It Domain: iconv character set names .It Default: ISO-8859-1 .El . .It connect timeout seconds to wait for response from connect request .Bl -tag -width "default:" -compact .It Domain: 0 to MAX_INT .It Default: none .El . .It debug flags logging granularity .Bl -tag -width "default:" -compact .It Domain: 32-bit integer .It Default: 0x4fff .El . .It dump file specifies location of a logfile and turns on logging .Bl -tag -width "default:" -compact .It Domain: valid file name .It Default: none .El . .It dump file append log data appended to file instead of re-writing for each connection .Bl -tag -width "default:" -compact .It Domain: yes/no .It Default: no .El . .It emulate little endian forces big endian machines to act as little endian to communicate with Microsoft Servers .Bl -tag -width "default:" -compact .It Domain: yes/no .It Default: no .El . .It encryption .Bl -tag -compact .It Em off disables encryption .It Em request use if available (default when tds version greater than 7.0) .It Em required allow encrypted connections only .El . .It host Name of the host the server is running on. .Bl -tag -width "default:" -compact .It Domain: host name or IP address .It Default: SYBASE .El . .It initial block size maximum size of a protocol block .Bl -tag -width "default:" -compact .It Domain: multiple of 512 .It Default: 512 .El . .It instance name of Microsoft SQL Server instance to connect to (supersedes .Em port ) .Bl -tag -width "default:" -compact .It Domain: instance name .It Default: none .El . .It port port number that the server is listening to .Bl -tag -width "default:" -compact .It Domain: any valid port .It Default: TDS 5.0, 5000; TDS 7.0 and up, 1433 .El . .It tds version TDS protocol version to use .Bl -tag -width "default:" -compact .It Domain: 4.2, 5.0, 7.0, 7.1, 7.2 .It Default: .Fl -with-tdsver value (5.0 if unspecified) .El . .It text size default value of TEXTSIZE, in bytes .Bl -tag -width "default:" -compact .It Domain: 0 to 4,294,967,295 .It Default: 4,294,967,295 .El . .It timeout seconds to wait for response to a query .Bl -tag -width "default:" -compact .It Domain: 0 to MAX_INT .It Default: none (wait forever) .El . .El .Pp Do not define both .Fa port and .Fa instance Ns \&. One implies the other. .Pp Boolean property values may be denoted as on/off, true/false, or 1/0. . .Ss DEBUG FLAGS The log's granularity can be controlled with the .Em debug flags property. .Bl -column -offset indent ".Sy 0x8000" ".Sy show source level info (source file and line)" .It Sy Value Ta Sy Meaning .It Li \ \ 0x02 severe error .It Li \ \ 0x04 error .It Li \ \ 0x08 warning .It Li \ \ 0x10 network .It Li \ \ 0x20 information level 1 .It Li \ \ 0x40 information level 2 .It Li \ \ 0x80 function trace and info .It Li 0x1000 show pid .It Li 0x2000 show time .It Li 0x4000 show source level info (source file and line) .It Li 0x8000 thread id (not implemented). .El . .Sh NAMES AND LOCATIONS The file is normally named .Pa /etc/freetds.conf or .Pa ${HOME}/.freetds.conf . That name can be overridden with the FREETDSCONF environment variable. .Pp FreeTDS will search conf files for a servername in the following order: .Bl -enum -offset indent -compact .It a filename set programmatically via dbsetifile() that is in .conf format .It a filename in the environment variable FREETDSCONF that is in .conf format .It .Pa ${HOME}/.freetds.conf if extant .It .Pa /opt/alt/freetds11/etc/freetds.conf .El .Pp The search stops with the first file containing the servername. .Pp If no conf file is found, FreeTDS searches for an .Pa interfaces file in the following order: .Bl -enum -offset indent -compact .It a filename set programmatically via dbsetifile() that is in .Pa interfaces format .It .Pa ${HOME}/.interfaces .It .Pa $SYBASE/interfaces (where .Ev $SYBASE is an environment variable) .El .Pp If the requested servername is not found in any configuration file, the fallback mechanism is: .Bl -enum -offset indent -compact .It attempt to convert the name to an IP address with inet_addr(3), else .It attempt to convert the name to an IP address with gethostbyname(3), else .It attempt to look up the literal name .Dq SYBASE .El . .Sh ENVIRONMENT .Bl -tag -width "TDSDUMPCONFIG" -compact .It Ev FREETDSCONF overrides name and location of the system-wide conf file .It Ev TDSDUMP overrides the name and location of the FreeTDS log file .It Ev TDSDUMPCONFIG specifies a name and location of a file that logs the search of configuration files .It Ev TDSHOST overrides the host property .It Ev TDSPORT overrides the port property .It Ev TDSQUERY synonym for DSQUERY, the default servername .It Ev TDSVER overrides the version specified in the freetds.conf .El .Pp The environment variables .Ev TDSVER, Ev TDSDUMP, Ev TDSPORT, Ev TDSQUERY, and Ev TDSHOST override values set by a .conf or .Pa interfaces file. . .Sh FILES .Pa /opt/alt/freetds11/etc/freetds.conf , ${HOME}/.freetds.conf . .Sh SEE ALSO .%B FreeTDS User Guide . .Sh HISTORY \&.conf files first appeared with version 0.53 of FreeTDS. usr/share/man/man1/fisql.1 0000644 00000010071 15233171116 0011265 0 ustar 00 .\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.5.16 .Dt FISQL FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm fisql .Nd interactive SQL shell .\" .Sh SYNOPSIS .Pp .Nm .Op Fl eFgpnvXY .Op Fl a Ar display_charset .Op Fl A Ar packet_size .Op Fl c Ar cmdend .Op Fl D Ar database .Op Fl E Ar editor .Op Fl h Ar headers .Op Fl H Ar hostname .Op Fl i Ar inputfile .Op Fl I Ar interfaces_file .Op Fl J Ar client_charset .Op Fl l Ar login_timeout .Op Fl m Ar errorlevel .Op Fl o Ar outputfile .Op Fl P Ar password .Op Fl s Ar colseparator .Op Fl S Ar server .Op Fl t Ar timeout .Op Fl U Ar username .Op Fl w Ar width .Op Fl y Ar sybase_dir .Op Fl z Ar language .\" .Sh DESCRIPTION .Pp .Nm is very similar to the .Ql isql utility programs distributed by Sybase and Microsoft. Like them, .Nm uses the command .Ql go on a line by itself as a separator between batches. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl a Ar display_charset The client charset name. Not implemented. .It Fl A Ar packet_size Set protocol packet size. You should not need to set this parameter. .It Fl c Ar cmdend Command terminator, defaults to .Ql go Ns . .It Fl D Database name on the server to use. .It Fl e Echo SQL input (usually in outputfile) .It Fl E Ar editor Specify an editor to invoke. Defaults to vi. .It Fl F FIPS mode ON. Server returns a message (but processes the query anyway) when it encounters a non-standard SQL command. .It Fl g Display a brief help message .It Fl h Ar headers Number of rows after which to repeat the column headers. Default is once per resultset. .It Fl H Ar hostname Hostname of the client machine as it will be told to the server. .It Fl I Ar interfaces_file Name of the interfaces or freetds.conf file to use. .It Fl i Ar inputfile Name of script file, containing SQL. .It Fl J Ar client_charset Not implemented. .It Fl l Ar login_timeout How long to wait for the server to acknowledge a login attempt. .It Fl m Ar errorlevel For errors of the severity level specified or higher, print only the message number, state, and error level. Below that level, print nothing. .It Fl n Suppress line numbers in echoed output. .It Fl o Ar outputfile Name of output file, holding result data. .It Fl p Prints performance statistics. Not implemented. .It Fl P Ar password Database server password. .It Fl s Ar colseparator The column separator. Default is space. Shell metacharacters require quoting. .It Fl S Ar server Database server to which to connect. .It Fl t Ar timeout The query timeout, in seconds. How long to wait for a query to be processed. The default is indefinitely, or as determined by freetds.conf. .It Fl U Ar username Database server login name. .It Fl v Display version and copyright. .It Fl w Ar width How many characters wide to print the output. Defaults to 80. .It Fl X Use encrypted login. Not implemented in FreeTDS. .It Fl y Pa sybase_dir Sets the .Ev SYBASE environment variable. Not used by FreeTDS. .It Fl Y Use chained transactions. .It Fl z Ar language Name of a language for fisql's prompts and messages. Cf. DBSETLNATLANG. .El .\" .Sh NOTES .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i Ns , .Fl o Ns , and .Fl e options override these defaults. .Pp .Nm uses the DB-Library API provided by FreeTDS. It was first implemented using Sybase's own library and continues to work with it. Before (and after) modifying it, it would be well to test it with Sybase's library to assure compatibility between it and FreeTDS. EXIT STATUS .Pp .Nm exits 0 on success, and >0 if the server cannot process the query. .Pp .Nm will report any errors returned by the server, but will continue processing. In a production environment, this behavior may be insufficiently stringent. To make it extremely intolerant of errors, change the message and error handlers to call exit(3). .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.65. .\" .Sh AUTHORS The .Nm utility was written by .An Nicholas S. Castellano Aq entropy@freetds.org Ns , who contributed it to the FreeTDS project under the terms of the GPL. .\" .Sh BUGS Requires the GNU readline library. usr/share/man/man1/osql.1 0000644 00000003740 15233171116 0011132 0 ustar 00 .\" cf. groff_mdoc .Dd April 26, 2012 .Os FreeTDS 1.5.16 .Dt OSQL FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm osql .Nd utility to test FreeTDS connections and queries .\" .Sh SYNOPSIS .Pp .Nm .Fl S Ar dsn .Fl U Ar username .Fl P Ar password .Op Fl I Pa ini_directory .\" .Sh DESCRIPTION .Pp .Nm is a diagnostic tool provided as part of FreeTDS. It is a Bourne shell script that checks and reports on your configuration files. If everything checks out OK, it invokes isql. .Pp .Nm works only with the isql that comes with unixODBC. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl S Ar dsn the Data Source Name to which to connect, as known to .Pa odbc.ini Ns . .It Fl U Ar username database login name. .It Fl P Ar password database password. .It Fl I Ar ini_dir override .Pa odbc.ini file location. .El .\" .Sh EXAMPLE If you have an .Pa odbc.ini with a section like this: .Bd -literal -offset indent .Bq myDSN servername = myserver TDS_Version = 5.0 .Ed .Pp You would invoke .Nm as: .Pp .Li osql -S myDSN .Op .\|.\|.\& .\" .Sh FILES .Pa odbc.ini .Pa freetds.conf .\" .Sh NOTES If you can connect with .Ql osql -S servername -U user -P passwd Ns , your FreeTDS ODBC installation is working. .Pp .Nm guesses where unixODBC might look for its .Pa odbc.ini by examining the binary. This is not always an effective approach. If it doesn't work, you'll receive a report of candidate strings. Kindly pass along the output to help improve the guessing. .Pp If .Nm cannot intuit your .Pa odbc.ini directory, you can force the issue with the .Fl I option. However, you're then instructing .Nm what to test, not where unixODBC will eventually look. Your override is therefore only as good as you are. Look carefully at the error output before overriding. .Pp If you have suggestions for ways to make .Nm more useful as a diagnostic tool, please post them to the FreeTDS mailing list. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.65. .\" .Sh AUTHORS The .Nm utility was written by .An James K. Lowden Ns . usr/share/man/man1/tsql.1 0000644 00000006630 15233171116 0011140 0 ustar 00 .\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.5.16 .Dt TSQL FreeTDS "FreeTDS Reference Manual" .Sh NAME .Nm tsql .Nd utility to test FreeTDS connections and queries .Sh SYNOPSIS .Nm .Bro .Fl S Ar servername .Op Fl I Ar interface | .Fl H Ar hostname .Op Fl L .Op Fl p Ar port .Brc .Op Fl D Ar dbname .Op Fl U Ar username .Op Fl P Ar password .Op Fl o Ar options .Nm .Fl C .Sh DESCRIPTION .Nm is a FreeTDS diagnostic tool. It uses the TDS protocol to connect to a Sybase or Microsoft SQL Server, and lets the user issue queries. .Nm does not use the FreeTDS client libraries. Instead, it uses only the lowest level library, libtds, to test the protocol implementation. .Pp .Nm can be run in two ways, one which uses the freetds.conf and one which connects directly using the server's hostname and port. The .Fl H and .Fl p parameters are provided to let the user verify a server is listening on the named host and port. These parameters override any configuration files and environment variables. The .Fl S parameter can be used to test the local configuration. FreeTDS will use freetds.conf (or equivalent) and environment variables in the normal way to determine the server's IP address and port. You can use .Fl I to specify a filename, overriding FreeTDS's configuration file search algorithm. .Sh OPTIONS .Bl -tag -width indent .It Fl S Ar servername database server to which to connect. .It Fl D Ar dbname database to use. .It Fl I Ar interface freetds.conf or interfaces file describing servername. .It Fl H Ar hostname DNS hostname of the server. .It Fl p Ar port port at which SQL Server is listening. .It Fl U Ar username database login name. If username is not provided, a domain login is attempted for TDS 7+ connections. .It Fl P Ar password database password. .It Fl L list Microsoft server instances (with .Fl H Ns ). .It Fl C print some of the compile-time configuration parameters. .It Fl o Ar options apply the options specified to every command. .Bl -tag -width indent .It Fl f No footer .Bq result count .It Fl h No header .Bq titles .It Fl t Print time .It Fl v Print version .It Fl q Quiet .El .It Fl a Ar appname application name. .It Fl t Ar colterm column terminator. .It Fl r Ar rowterm row terminator. .It Fl r Ar rowterm row terminator. .It Fl J Ar charset character set. .It Fl v verbose mode. .El .\" .Sh NOTES If you can connect with .Ql tsql -S servername Ns , your basic FreeTDS installation is working. .Pp Typing .Ql exit Ns , .Ql quit Ns , or .Ql bye (or .Li ^D Ns ) exits .Nm Ns . .Pp Typing .Ql version displays the TDS protocol version. .Pp Command batches may be separated with .Ql go or .Ql GO Ns . If .Ql GO the version string is reported before executing the batch. .Pp After prompting for the password (if not provided with .Fl P Ns ), .Nm will attempt to connect to the remote server. .Nm displays a counter indicating the number of seconds elapsed during the connection attempt. Typically, .Nm immediately responds with a .Ql 1> prompt. If you see the counter (1, 2, 3, ...), most likely .Nm is unable to connect to the indicated server. .Pp .Nm is not a replacement for a complete isql such as sqsh (www.sqsh.org). If you have suggestions for ways to make .Nm more useful as a diagnostic tool, please post them to the FreeTDS mailing list for consideration. .Sh HISTORY .Nm first appeared in FreeTDS 0.60. .Sh AUTHORS The .Nm utility was written by .An Brian Bruns Ns . .Sh BUGS Several, to be sure, now that it's documented. :) usr/share/man/man1/defncopy.1 0000644 00000005074 15233171116 0011765 0 ustar 00 .\" cf. groff_mdoc .Dd April 26, 2012 .Os FreeTDS 1.5.16 .Dt DEFNCOPY FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm defncopy .Nd extract procedures and views from a Microsoft server. .\" .Sh SYNOPSIS .Pp .Nm .Op Fl v .Op Fl U Ar username .Op Fl P Ar password .Op Fl S Ar server .Op Fl D Ar database .Op Fl i Ar input_file .Op Fl o Ar output_file .Bo .Ar owner.object_name .\" Elipsis according to Werner Lemberg: .\" http://www.mail-archive.com/groff@gnu.org/msg03122.html .Op Ar owner.object_name .\|.\|.\& .Bc .\" .Sh DESCRIPTION .Pp .Nm is a utility program distributed with FreeTDS. It replaces a similar program of the same name distributed by Sybase. .Pp .Nm reads the text of a stored procedure or view, and writes a script suitable for recreating the procedure or view. For tables, it reads the output of sp_help and constructs a .Ql CREATE TABLE statement, complete with .Ql CREATE INDEX Ns , too. .\" .Ar owner is optional if you or the database owner is the owner of the procedure/view being copied. .Ar object_name is the name of the system object you wish to extract. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl U Ar username database server login name. .It Fl P Ar password database server password. .It Fl S Ar server database server to which to connect. .It Fl D Ar database database to use. Optional if the procedure/view being extracted is in your default database. .It Fl i Ar input_file a script to apply to the database. Not currently implemented. .It Fl o Ar output_file a file to hold the script, defaults to standard output. .It Fl v Show version information and copyright notice. .El .\" .Sh NOTES .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i , .Fl o , and .Fl e options override these defaults. .Pp .Nm makes use of the db-lib API provided by FreeTDS. This API is of course also available to application developers. .Sh EXIT STATUS .Pp .Nm exits 0 on success, and >0 if the server cannot process the query. .Pp .Nm will report any errors returned by the server, but will continue processing. .\" .Sh HISTORY .Pp .Nm first appeared in FreeTDS 0.63. .\" .Sh AUTHORS The .Nm utility was written by .An James K. Lowden Aq jklowden@schemamania.org. .\" .Sh BUGS Works only with Microsoft servers and ancient Sybase servers. Does not create primary keys. Many options are defined by Sybase that this version does not implement. Feel free to correct this situation. In theory, .Nm could apply/produce DDL for any system object, but at present only tables, procedures and views are supported, and only for extraction. usr/share/man/man1/datacopy.1 0000644 00000004564 15233171116 0011765 0 ustar 00 .\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.5.16 .Dt DATACOPY FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm datacopy .Nd move table data between two servers .\" .Sh SYNOPSIS .Nm .Op Fl vdE .Bro .Fl t | .Fl a | .Fl c .Ar owner .Brc .Op Fl b Ar batchsize .Op Fl p Ar packetsize .Op Fl S Ar server/username/password/database/table_or_view .Op Fl D Ar server/username/password/database/table .Op Fl T Ar textsize .\" .Sh DESCRIPTION .Nm is a utility distributed with FreeTDS. .Nm will move table data from one server to another without the need for intermediate files. .Nm is much faster and more efficient than is freebcp out/in. .Pp .Nm makes use of the db-lib bcp API built into FreeTDS. This API is also available to application developers. .Pp .Nm can be used to migrate data between Sybase ASE and SQL Server or vice versa. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl t Truncate target table before loading data. .It Fl a Append data to target table. .It Fl c Ar owner Create the target table with the same schema as the source table. .Nm will submit a .Ql CREATE TABLE command on the target server using the specified owner in the command, e.g. .Ql CREATE TABLE owner.table (.\|.\|.\&). .It Fl b Ar batchsize The number of rows per batch of data copied. Each batch of data is effectively 'committed' to the database. The default is 1000. .It Fl p Ar packetsize The number of bytes, per network packet, sent to and from the servers. Increased packet size can enhance performance. .It Fl T Ar textsize Specify size of TEXT/IMAGE column from network. .It Fl v Produce verbose output, including diagnostic timings. .It Fl d Produce freetds TDSDUMP output. (Serious debug only!) .It Fl S Ar server/username/password/database/table_or_view The connection information for the source server and the location/name of the table (or view) to be copied. If not specified, .Nm prompts the user for the information. .It Fl D Ar server/username/password/database/table The connection information for the destination server and the location/name of the target table. If not specified, .Nm prompts the user for the information. .It Fl E Keep identity values. .El .Sh SEE ALSO .Xr freebcp 1 , Xr defncopy 1 , Xr bsqldb 1 , Xr tsql 1 , .%B FreeTDS User Guide. .\" .Sh HISTORY .Pp .Nm first appeared in FreeTDS 0.64. .\" .Sh AUTHORS The .Nm utility was written by .An Bill Thompson Aq thompbil@exchange.uk.ml.com . usr/share/man/man1/bsqlodbc.1 0000644 00000004520 15233171116 0011742 0 ustar 00 .\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.5.16 .Dt BSQLODBC FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm bsqlodbc .Nd batch SQL script processor using ODBC .\" .Sh SYNOPSIS .Pp .Nm .Op Fl hqv .Op Fl U Ar username .Op Fl P Ar password .Op Fl S Ar server .Op Fl D Ar database .Op Fl i Ar input_file .Op Fl o Ar output_file .Op Fl e Ar error_file .Op Fl t Ar field_term .Op Fl V Ar odbc_version .\" .Sh DESCRIPTION .Pp .Nm is a utility program distributed with FreeTDS. .Pp .Nm is a non-interactive equivalent of the .Ql isql utility programs distributed by Sybase and Microsoft. Like them, .Nm uses the command .Ql go on a line by itself as a separator between batches. The last batch need not be followed by .Ql go . .Pp .Nm makes use of the ODBC API provided by FreeTDS. This API is of course also available to application developers. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl U Ar username Database server login name. .It Fl P Ar password Database server password. .It Fl S Ar server Database server to which to connect. .It Fl D Ar database Database to use. .It Fl i Ar input_file Name of script file, containing SQL. .It Fl o Ar output_file Name of output file, holding result data. .It Fl e Ar error_file Name of file for errors. .It Fl t Ar field_term Specifies the field terminator. Default is two spaces ( .Ql \ \ .Ns ). Recognized escape sequences are tab ( .Ql \et .Ns ), carriage return ( .Ql \er .Ns ), newline ( .Ql \en .Ns ), and backslash ( .Ql \e\e .Ns ). .It Fl h Print column headers with the data to the same file. .It Fl q Do not print column metadata, return status, or rowcount. Overrides .Fl h . .It Fl v Verbose mode, for more information about the ODBC interaction. This also reports the result set metadata, including and return code. All verbose data are written to standard error (or .Fl e Ns ), so as not to interfere with the data stream. .It Fl V Ar odbc_version Specify ODBC version (2 or 3). .El .\" .Sh NOTES .Pp .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i , .Fl o , and .Fl e options override these defaults. .Sh EXIT STATUS .Nm exits 0 on success, and >0 if the server cannot process the query. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.65. .\" .Sh AUTHORS The .Nm utility was written by .An James K. Lowden Aq jklowden@freetds.org . usr/share/man/man1/bsqldb.1 0000644 00000006665 15233171116 0011434 0 ustar 00 .\" cf. groff_mdoc .Dd March 26, 2015 .Dt BSQLDB 1 .Os FreeTDS 1.5.16 .Sh NAME .Nm bsqldb .Nd batch SQL script processor using DB-Library .Sh SYNOPSIS .Nm .Op Fl hqv .Op Fl S Ar servername .Op Fl D Ar database .Op Fl U Ar username .Op Fl P Ar password .Op Fl i Ar input_file .Op Fl o Ar output_file .Op Fl e Ar error_file .Op Fl H Ar hostname .Op Fl t Ar field_term .Op Fl R Ar pivot_description .\" .Sh DESCRIPTION .Nm is a utility program distributed with FreeTDS. .Nm is a non-interactive equivalent of the "isql" utility programs distributed by Sybase and Microsoft. Like them, .Nm uses the command "go" on a line by itself as a separator between batches. The last batch need not be followed by "go". .Nm makes use of the DB-Library API provided by FreeTDS. This API is of course also available to application developers. .Sh OPTIONS .Bl -tag -width indent .It Fl D Ar database Database to use. .It Fl H Ar hostname hostname Override name of client sent to server. .It Fl P Ar password Database server password. .It Fl S Ar servername Database server to which to connect. .It Fl U Ar username Database server login name. If username is not provided, a domain login is attempted for TDS 7+ connections. .It Fl e Ar error_file Name of file for errors. .It Fl h Print column headers with the data to the same file. .It Fl i Ar input_file Name of script file, containing SQL. .It Fl o Ar output_file Name of output file, holding result data. .It Fl q Do not print column metadata, return status, or rowcount. Overrides .Fl h Ns . .It Fl t Ar field_term Specifies the field terminator. Default is two spaces (' '). Recognized escape sequences are tab ('\\t'), carriage return ('\\r'), newline ('\\n'), and backslash ('\\\\'). .It Fl v Verbose mode, for more information about the DB-Library interaction. This also reports the result set metadata, including and return code. All verbose data are written to standard error (or .Fl e Ns ), so as not to interfere with the data stream. .It Fl R Ar pivot_description Specify pivot trasformation. The format is .Ao Ar down\ columns Ac .Ao Ar across\ columns Ac .Ao Ar function Ac .Ao Ar value Ac . Columns are specified but numbers. The format of .Ar down columns and .Ar across columns is a comma separated list of columns. .Ar function is either count, sum, min or max. .El .\" .Sh ENVIRONMENT .Ev DSQUERY default .Ar servername .\" .Sh NOTES .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i Ns , Fl o Ns , and Fl e options override these defaults. .Pp The source code for .Nm is intended as a model for DB-Library users. DB-Library has a rich set of functions, and it can be hard sometimes to understand how to use them, particularly the first time. If you find something about the source code unclear, you are encouraged to email the author your comments. .\" .Sh EXIT STATUS .Nm exits 0 on success, and >0 if the server cannot process the query. .Pp For messages with severity > 10, .Nm calls exit(3) with the severity level. For example, if the severity level is 16, .Nm will return an exit status of 16 to the shell. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.63. .\" .Sh AUTHORS The .Nm utility was written by .An "James K. Lowden" Aq jklowden@freetds.org . .\" .Sh BUGS Microsoft servers as of SQL Server 7.0 SP 3 do not return output parameters unless the RPC functions are used. This means .Nm cannot return output parameters for stored procedures with these servers. usr/share/man/man1/freebcp.1 0000644 00000014320 15233171116 0011556 0 ustar 00 .\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.5.16 .Dt FREEBCP 1 .Sh NAME .Nm freebcp .Nd bulk loading utility for Sybase and Microsoft databases .Sh SYNOPSIS .Nm .Bo Bo Ao Ar database Ac Ns . Bc Ns Ao Ar owner Ac Ns . Bc Ns Aq Ar object_name .Bro .Ar in | .Ar [query] Ns Ar out .Brc .Ar datafile .Bro .Fl c | .Fl n | .Fl f Ar formatfile .Brc .Op Fl S Ar servername .Op Fl D Ar dbname .Op Fl U Ar username .Op Fl P Ar password .Op Fl b Ar batchsize .Op Fl F Ar firstrow .Op Fl L Ar lastrow .Op Fl e Ar errfile .Op Fl I Ar interfaces .Op Fl m Ar maxerror .Op Fl t Ar field_term .Op Fl r Ar row_term .Op Fl h Ar hints .Op Fl T Ar textsize .Op Fl A Ar packet_size .Op Fl O Ar options .Op Fl i Ar inputfile .Op Fl o Ar outputfile .Op Fl C Ar charset .Op Fl EdVv .\" .Sh DESCRIPTION .Nm is a utility program distributed with FreeTDS. .Nm replicates (in part at least) the functionality of the bcp utility programs distributed by Sybase and Microsoft. .Nm makes use of the DB-Library bcp API provided by FreeTDS. This API is also available to application developers. .Pp The manual pages or online help for Sybase or SQL Server can be referenced for more detailed information on bcp functionality. .\" .Sh TABLES\ AND\ FILES .Bl -tag -width indent .It Ar database The name of the database containing object to be copied. Optional if the table/view is in the default database for .Ar username . .It Ar schema The schema of the object being copied. If not provided, the default schema for .Ar username is used. .It Ar object The name of the database object you wish to access, typically a table. It can also be a view. All views can be read; some can be written, subject to constraints. With .Ar queryout Ns , Ar object can also be an SQL query. .It Ar in Copy data from a host file to a database table. .It Ar out Copy data from a database table to a host file. .It Ar queryout indicates that .Ar table_name is in fact SQL, rather than a database object. .Nm will execute the query and write the results to a file. (It is a good idea to have the query return one and only one result set.) .It Ar datafile The name of an operating system file. .El .\" .Sh OPTIONS .Bl -tag -width indent .It Fl A Ar packet_size Set the size of a TDS packet to packet_size. Not sure why you would want to do this, except as an experiment. .It Fl D Ar dbname The name of the default database to use. Overrides default database associated with the login account. Causes .Nm to issue a .Ic USE Ar dbname command immediately after logging in, before commencing BCP operations. .It Fl E Write the data in datafile to the table's IDENTITY column. Without this flag, the identity data present in the datafile will be ignored, and new IDENTITY values will be generated for the imported rows. .It Fl F Ar firstrow The first row to copy from the input file or database table. The default is the first row, row 1. .It Fl I Ar interfaces The name and location of the .Pa interfaces file to search when connecting to servername. Overrides .Pa freetds.conf. .It Fl L Ar lastrow The last row to copy from an input file or database table. The default is the last row. .It Fl O Ar options SQL text to set connection options prior to the bcp operation. If .Ar options is a valid filename, the SQL is read from the file instead. Sometimes needed for .Ar queryout . Example: .Li -O `SET QUOTED_IDENTIFIER ON' Ns . .It Fl P Ar password The password associated with .Ar username . .It Fl S Ar servername The name of the Database Server to which to connect. .It Fl T Ar textsize For text or image columns, set the maximum number of characters to request from the server. Defaults to the setting in .Pa freetds.conf . If not specified anywhere, defaults to the full size of the data. .It Fl U Ar username A database login name. For TDS\ 7+ connections, a domain login is attempted if .Ar username is not provided. .It Fl b Ar batchsize The number of rows per batch of data copied. Batching applies only when you are bulk copying into the database. Each batch of data is effectively .Dq committed into the database. The default value for .Ar batchsize is 1000. .It Fl c The host data file is (or will be) in "character" format, i.e., a text file. Encoding is determined by the client charset attribute in .Pa freetds.conf . .It Fl d Turn off any logging. (Unintuitive, perhaps.) .It Fl e Ar errfile Write errors to .Ar errfile . For uploads. Includes line and column information, and the row data. .It Fl f Ar formatfile The format of the host data file is described by .Ar formatfile . The layout of .Ar formatfile is identical to that understood by the Sybase and Microsoft bcp utilities, but is too complicated to describe here. .It Fl h Ar hints Set bcp hints. For valid values, cf. .Fn bcp_options in the FreeTDS Reference Manual. .It Fl m Ar maxerror Stop after encountering .Ar maxerror errors. Default 10. .It Fl n The host data file is in .Dq native format. This is a format that .Nm will be able to process, but is not portable or readable. .It Fl r Ar row_term The row terminator for a character file. May be more than one character. Default is newline ('\\n'). Cf\&. .Fl c Ns , above. .It Fl t Ar field_term The field terminator for character file. Also known as a column delimiter. May be more than one character. Default is tab ('\\t'). Cf\&. .Fl c Ns , above. .It Fl v .It Fl V Print the version information and exit. .It Fl i Ar inputfile Read input data from file specified. .It Fl o Ar outputfile Write output data to file specified. .It Fl C Ar charset Specify character set to use to talk to server. .El .Sh ENVIRONMENT .Ev DSQUERY default .Ar servername .\" .Sh NOTES When connecting to a Sybase database server, it is required that the TDS 5.0 protocol be used. When connecting to a Microsoft SQL Server 2000 database server, the TDS\ 7 (or later) protocol is required. .Pp Sybase and Microsoft define different versions of the bcp portion of TDS 4.2. Because FreeTDS has no way of knowing which type of server it's connected to, .Nm does not support version 4.2 of the TDS protocol. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.60 .Sh AUTHORS The .Nm utility was written by .An Bill Thompson Aq thompbil@exchange.uk.ml.com .Sh BUGS Currently, there is no support for text data types in .Nm Ns , when SQL Server 2000 is the target server. usr/bin/tdspool 0000755 00001233300 15233171116 0007541 0 ustar 00 ELF >