Summary: | Невозможность работы с базами с названиями в верхнем регистре | ||
---|---|---|---|
Product: | SELTA@Etersoft | Reporter: | Станислав Коробейников <stas> |
Component: | Общее | Assignee: | Калюхович Юрий <goga> |
Status: | CLOSED FIXED | QA Contact: | Станислав Коробейников <stas> |
Severity: | minor | ||
Priority: | P4 | CC: | goga, lav |
Version: | 1.0.5 | ||
Target Milestone: | версия 1.0.4 | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | 3166 | |
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 6158 |
Description
Станислав Коробейников
2009-02-26 18:12:54 MSK
В SELTA 1.1 Это должно решаться добавлением кавычек к любым названиям. Тогда бага должна блокировать релиз SELTA 1.1 открываю заново, т.к. пока в новом парсере двойные кавычки к идентификаторам не добавляются. нужно уточнение: в двойные кавычки брать имена баз или - имена баз и таблиц, либо даже имена полей в таблице? последнее реализовать сложнее. имена функций, представлений, процедур, триггеров,индексов - как быть с ними? сейчас добавил кавычки только в парсер и только в create/drop database. нужно еще добавить в initdb.cpp, т.к. сельта базу создает напрямую, в обход парсера попробовал изменить initdb.cpp, база создалась (с правильным именем), но вылезла ошибка sqlstate 42703 'undefined column'. менял PGAPI_DriverConnect(), убирал в нем приведение к нижнему регистру, возможно из-за этого > вылезла ошибка sqlstate 42703 'undefined column'
виноват, выводит просто сообщение о "cannot init database with error"
из-за того, что mssql регистронезависим, и постгри - регистрозависим, 3 строчки приведения к нижнему регистру в initdb.cpp решают вопрос полностью, коммичу. вопрос относительно идентификаторов пока еще не закрыт - надо решить, приводить ли к нижнему регистру идентификаторы вида [This IS THE iDentiFiER] (В ответ на comment #8) > из-за того, что mssql регистронезависим, и постгри - регистрозависим, 3 строчки > приведения к нижнему регистру в initdb.cpp решают вопрос полностью, коммичу. ветка selta-108lowercase-dbname. в gold-парсере привел идентификаторы к нижнему регистру и взял в кавычки. > в gold-парсере привел идентификаторы к нижнему регистру и взял в кавычки.
проверил в mssql для идентификаторов вида [aA aa AAa] - и все равно регистронезависимо. привел такие строки тоже к нижнему регистру, закоммитил.
багу закрываю.
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять. |