Skip to Content.
Sympa Menu

freetds - [freetds] new functionality

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: TDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: [freetds] new functionality
  • Date: Tue, 16 Jan 2007 01:33:32 -0500

In addition to the new & improved error handling for timeouts, I started
adding a couple more things:

1. db-lib error messages with placeholders. In the past, db-lib error
messases weren't very consistently implemented, meaning that if you
misused the function it would keep quiet about it until something really
weird and nasty happened. Nowadays we try to catch programming errors at
the API level, so you'll see messages if your error handler is installed.
Sometimes those messages would look odd, though, because the placeholder
substitution wasn't implemented. It is now, and seems to be working.

2. TDSVER 0.0. If you use TDSVER=0.0 for tsql, it will autodetect the
highest available TDS version and use it. This doesn't work too well with
db-lib yet, because the autodetection is really a trial-and-error affair,
and the db-lib error handler sees it as a fatal logon failure. I'm not
*all* that excited about this feature and I'm not sure I'll finish it any
time soon, but the libtds work is done and demonstrably works.

3. The db-lib unit tests no longer produce spurious error messages. If
the program is testing that an error is correctly generated, it
communicates with the error handler and the message is so marked.

I look over the db-lib API from time to time. We're pretty much done. In
terms of coverage, I think most of the unimplemented functions are so
rarely used that no one cares if they're ever done. I don't see
registered procedures getting implemented, or the browse functions, or
"open server", or most of the dbmny functions. A lot of the remaining
functions were implemented by only one vendor or the other and never
really caught on afaict.

dbsetnull() would be nice, and maybe dbpoll(). Blob handling is a bit
rough. The bcp library needs some re-engineering to handle blobs
correctly, without being limited by virtual memory.

Looking at how far we've come since 0.60, I think the next release should
be 0.70. Which begs the question: what would be 1.0? Answers:

1. Reworked bcp. Minimized buffer copies and better charset controls.
2. A defined set of "will not implement" functions.
3. More compatibility testing with Sybase's implementation.
4. bsqlodbc, so we can script arbitrary ODBC tests.
5. Correct ct-lib network error numbers and messages, if anyone cares.
Curently, the "ct-lib" errors generated by libtds are db-lib (-derived)
values, which ct-lib passes through rather than mapping to the ct/cs-lib
scheme.

That's not a very long list, in programmer years. Am I missing something,
or is 1.0 a plausible goal for 2007?

--jkl







Archive powered by MHonArc 2.6.24.

Top of Page