Summary: | Протеcтировать SELTA 1.1.0 c Postgres 9.0 | ||
---|---|---|---|
Product: | SELTA@Etersoft | Reporter: | Станислав Коробейников <stas> |
Component: | Общее | Assignee: | Калюхович Юрий <goga> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | P4 | CC: | lav, sonner, stas |
Version: | 1.1.0 | ||
Target Milestone: | версия 1.0.4 | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 7114, 7135 | ||
Bug Blocks: | 6158 | ||
Deadline: | 2011-04-18 |
Description
Станислав Коробейников
2011-04-05 18:32:57 MSK
из gui: нужно выполнить тесты 6,9,11,13,17-27 из 1с77: тесты 1-3 для конфигураций "Бухгалтерия" и "Комплексная" для gui остались 11, 13, 23, 27, т.е. самые важные. остальные для gui все пройдены. а вот из 1С даже подключиться не удалось (при настройке, из конфигуратора) - ошибка "требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия" наш тест odbc соединения с постгри (добавил в список тестов) проходит нормально, соединяется, делает select, отображает данные. Но он не запрашивает версию, как 1С Сделай тест с запросом версии. И потом хак в odbc драйвере. (В ответ на comment #4) > Сделай тест с запросом версии. И потом хак в odbc драйвере. 1C трижды запрашивает версии с помощью SQLGetInfo у меня получилось: для mssql: SQL_ODBC_VER = 03.52.0000 SQL_DRIVER_VER = 03.81.7713 SQL_DBMS_VER = 08.00.2039 для постгри 8.4 (pgsql): SQL_ODBC_VER = 03.52.0000 SQL_DRIVER_VER = 03.81.7713 SQL_DBMS_VER = 8.4.4-alt0.M51.1.1 для постгри 9.0.2 (alt 6 beta): SQL_ODBC_VER = 03.52.0000 SQL_DRIVER_VER = 03.81.7713 SQL_DBMS_VER = 9.0.2 Делаем, что бы версию сервера возвращало бы 08.00.2039. Только думаю, что хорошо бы переделать так, что бы возвращалось из какой-нибудь нашей функции. (В ответ на comment #5) > для mssql: > SQL_DBMS_VER = 08.00.2039 > > для mssql:
> > SQL_DBMS_VER = 08.00.2039
в общем, версию запрашивает и CC_lookup_pg_version() (connection.c), и libpq (fe-protocol2.c), и видимо где-то еще, т.к. замена в этих двух файлах результата не принесла.
версия постгри также передается при подключении, в параметре server_version, выясняется все это в функции getParameterValues()
1С смогла подключиться, только если в odbc в функции PGAPI_GetInfo() жестко прописать возвращаемую версию сервера. сейчас этого хватит, но на будущее надо сделать возможность "работать" с разными версиями, т.е. делать табличку в базе master mchar.sql у 9.0 и 8.3.8 одинаковые внес изменения в SQLDriverConnect() и SQLDriverConnectW(), чтобы избежать перекрестных подключений изменил скрипты создания/обновления базы. 1С приняла нормально. Но - при попытке загрузить базу - ошибка "22P06" Warning: nonstandart use of \\ in a string literal подозреваю, что надо поправить параметр client_min_messages ... Есть специальный параметр escape_string_warning, который это отключает. (В ответ на comment #10) > подозреваю, что надо поправить параметр client_min_messages ... Ну и это. (В ответ на comment #10) > подозреваю, что надо поправить параметр client_min_messages ... (В ответ на comment #12) > Ну и это. > (В ответ на comment #10) > > подозреваю, что надо поправить параметр client_min_messages ... client_min_messages изменил на error, как на pgsql (было notice) и база Бухгалтерии загрузилась Тестирование и Исправление базы не прошло: HY000 "Output parameter isn't available before 8.1 version" (В ответ на comment #14) > Тестирование и Исправление базы не прошло: > HY000 "Output parameter isn't available before 8.1 version" видимо, база была битая. все тесты для 1С пройдены (passed) gui test 11 passed исправил опечатку в парсере с OBJ_RENAME() загрузка конфигурации в базу (для теста 13) неудачна: constraint 'pk__1sjourn_new__1sjourn' of relation '_1sjourn' does not exists > загрузка конфигурации в базу (для теста 13) неудачна: constraint
> 'pk__1sjourn_new__1sjourn' of relation '_1sjourn' does not exists
почти выяснил причину. obj_rename() выполняет переименование, и лезет в таблицу "pg_indexes_name", где были изменения в том смысле, что все идентификаторы берутся в кавычки и приводятся к нижнему регистру
GetIndexRelName() уже исправлял, а вот другие функции не проверял...
obj_rename() исправил, но это не помогло, ошибка та же (В ответ на comment #18) > obj_rename() исправил, но это не помогло, ошибка та же еще немного поправил obj_rename(), загрузка структуры успешна. но загрузка csv в постгри (тест 13) не прошла, выдало ошибку в неправильной кодировке, что очень плохо selta 1.1.0 не может работать с постгри ниже 9.0 из-за отсутствия патча seltapgaddon gui test 23 passed gui test 27 : делал c 8.4 до 9.0, обновления постгри не потребовалось, gui сельты восприняло базу как свою, но в таблице pg_selta_version так и осталось 8404 оказалось возможным инициализировать/деинициализировать базу postgres исправил ошибку в gui selta при обновлении базы - не проверять базу 'postgres' (В ответ на comment #22) > исправил ошибку в gui selta при обновлении базы - не проверять базу 'postgres' test sqlbindparameter passed база 1С загрузилась, 1С запустилась. test gui 13 passed. багу пока зыкрываю, если обнаружится ошибка (бага, например, 6124) - переоткроем Ошибка при удалении помеченных объектов - HY000 "No query has been executed with that handle" (В ответ на comment #25) > Ошибка при удалении помеченных объектов - HY000 "No query has been executed > with that handle" у меня не подтвердилось. скорее всего из-за того, что на нашей базе не было изменений в таблицу selta_supported_mssql_version (бага 7135 комм. 6) (В ответ на comment #26) > (В ответ на comment #25) > > Ошибка при удалении помеченных объектов - HY000 "No query has been executed > > with that handle" не подтвердилось ни на постгри 9.0, ни на постгри 8.4.4 Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять. |