parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

беты обновлены (beta9), изменился API драйверов [updated]

Misha v.3 28.06.2008 23:58 / 01.07.2008 17:57

собственно в самом парсере изменений, кроме изменений API драйверов (в beta9 -- v10, текущая -- v9) -- нет.

для того, чтобы тестировать эти версии парсера, нужно обновлять и его и sql драйвера (пока не выложен длайвер oracle-а).
чтобы не заниматься копированием драйверов туда/обратно, может быть удобно положить новые драйвера в отдельную каталожку и в @conf[] определить переменную, в которой изменяется путь к ним.


- все SQL сервера: в sql запросах теперь корректно работает $.limit(0) -- делается sql запрос, но достаётся 0 записей. раньше указание $.limit(0) было равносильно его отсутствию, что некорректно.

- ODBC: драйвер сильно ускорен в случае limit + больших offset. при работе с MSSQL 2000 я проанализировал profiler-ом и был приятно удивлён, что новая реализация оказалоась даже быстрее чем рекомендуемый для подобного случая вложенный подзапрос с двумя top. с драйвером для MSSQL от erg-а сравнить его пока не смог (не удалось подключить последний, но долго я с этим не возился). подробности тестирования опишу позже. скорее всего сделанные правки включу и в текущую версию + выложу пересобранный драйвер.

- SQLite: путь к файлу задаётся относительно document_root (как и всюду в парсере. это несовместимое изменение, раньше путь указывался относительно исполняемого файла парсера); обрабатываются опции autocommit=0 (по умолчанию==1), multi_statements=1 (по умолчанию==0), ClientCharset=кодировка (по умолчанию UTF-8, это default кодировка SQLite и не стОит её менять. если вы пользовались старой версией драйвера, то вам надо или указать ?ClientCharset=$request:charset или перекодировать вашу БД в UTF-8); кавычка (") корректно экранируется; в качестве пути к БД можно указать специальные значения -- :memory: и :temporary:; серверные сообщения об ошибках перекодируются из UTF-8 в $request:charset.


исправления API и много исправлений в драйверах были присланы Sumo.