[ psqlodbc-Bugs-1000604 ] 8.01.0200 slow with long queries

Поиск
Список
Период
Сортировка
От
Тема [ psqlodbc-Bugs-1000604 ] 8.01.0200 slow with long queries
Дата
Msg-id 20060404104512.2A595103383D@pgfoundry.org
обсуждение исходный текст
Список pgsql-odbc
Bugs item #1000604, was opened at 2006-04-04 13:45
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000604&group_id=1000125

Category: None
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Lasse Haataja (lhaataja)
Assigned to: Nobody (None)
Summary: 8.01.0200 slow with long queries

Initial Comment:
psqlodbc 8.01.0200 is much slower than 8.01.0102 (and earlier versions)
with long (>10 kilobytes) queries; a 1 megabyte query that takes two
seconds with .0102 takes 37 minutes with .0200.

According to mylog, most of the time seems to be taken by PGAPI_NumParams.
(Although bind.c seems to be identical in .0102 and .0200, perhaps the
arguments the function is called with makes the difference?)

The culprit seems likely to be the line

for (i = 0; i < strlen(stmt->statement); i++)

where strlen is (needlessly, since the string is not modified, let alone
its length changed) evaluated once for each iteration of the loop, resulting
in O(N^2) complexity. Fix should be easy, something along the lines of

size_t stmt_len = strlen(stmt->statement);
for (i = 0; i < stmt_len; i++)

The same problem occurs in misc.c function remove_newlines(); the same fix
appears applicable there as well.

----------------------------------------------------------------------

You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000604&group_id=1000125

В списке pgsql-odbc по дате отправления:

Предыдущее
От: "Dave Page"
Дата:
Сообщение: Re: driver updates in windows
Следующее
От:
Дата:
Сообщение: [ psqlodbc-Bugs-1000605 ] Escaped single-quotes mistreated by PGAPI_NumParams