Re: Adding NVARCHAR columns causes ct_cancel (ctlib) to hang
Gregory Holtorf <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <CANenAbkLv1svsJPPP7tkZymAwfyaXf5BkoxTsP34VzSAz3UaPQ@mail.gmail.com> |
I download the master version at https://gitorious.org/freetds/freetds/source/a8bafc940508adcb575d1d72b4ff456c9973f5e4: but that version apparently can't ./configure and make on unix (even though) some of the readme still says to do that. Is there a version that still works on unix? On Sun, Jan 18, 2015 at 3:23 AM, Frediano Ziglio <[email protected]> wrote: > 2015-01-16 22:17 GMT+00:00 Gregory Holtorf <[email protected]>: > > When calling ct_cancel in the freetds library, on unix, ct_cancel() > > sometimes takes several minutes to run. This is bad because it usually > > takes a few milliseconds to run. This bug works on freetds-0.91 and > > freetds-0.64 In order to reproduce the bug, I needed to: > > > > 1. Run a select statement on a large table > > > > 2. The table has to contain nvarchar columns. varchar columns do not > > trigger the bug. > > > > 3. The select statement must contain an order by clause > > > > > > select <nvarchar columns> > > > > from <table name> > > > > order by <nvarchar column> > > > > > > After completing the select statement, call ct_cancel(). For instance, > > before you make another select statement or when you log out. > > > > ct_cancel(m_pCtConnection, NULL, CS_CANCEL_ALL); > > > > > > When I turn on logging I can see that after I call ct_cancel() for the > last > > time, it is followed by an absolutely huge number of packets received. I > > attached a log file, but I had to force quit the program or else the log > > file ends up being several thousand megabytes long. > > > > Is there a way to fix this issue? Is freetds unable to make select > > statements on nvarchar columns or is it something I did in my code? > > > > > > Thanks, > > > > Greg > > > > Hi, > unfortunately is a server problem. Looking at the log FreeTDS > correctly send the cancel request but server does not process it in a > time fashion so at the end it output all results to client. The only > problem can raise from FreeTDS is the conversion from nvarchar(max) -> > ntext caused by protocol. You should try with git master version and > 7.2 protocol. > > Frediano > _______________________________________________ > FreeTDS mailing list > [email protected] > http://lists.ibiblio.org/mailman/listinfo/freetds >