Ошибка кода Datagrip, подсвечивающая неправильное поведение, но только в 1 БД - PullRequest
0 голосов
/ 21 мая 2018

Я использую DataGrip для работы в кластере Redshift, который содержит несколько баз данных, и подсвечивание ошибок, похоже, немного странно.Предположим, у меня есть schema_1.table_a в базе данных dev и schema_2.table_b в базе данных test в том же кластере.Если я подключаюсь к dev и пишу запрос:

select * from schema_2.table_b, ссылка на schema.table подсвечивается (правильно) как ошибка вне области действия.

Однако, если я подключаюсь кбазу данных test и напишите запрос:

select * from schema_1.table_a, подсветка ошибок отсутствует, и DataGrip предлагает автозаполнение ссылки.Во время выполнения, неудивительно, что запрос выдает ошибку, поскольку test не содержит эту схему или таблицу.

Я нахожу это особенно странным, потому что он влияет только на один подключение к базе данных.Расширяя этот пример, test ведет себя странно, но prod, scratch и т. Д. Все ведут себя, как и ожидалось, выделяя похожие ошибки вне области действия.

Есть ли какая-то настройка области действия базы данных, которую я случайно изменил?Сводит меня с ума, пытаясь отлаживать код, когда я запускаю его в производство.

Удаление соединения Redshift и создание нового не влияет на поведение;возможно, это как-то связано с postgres / Redshift?

1 Ответ

0 голосов
/ 22 мая 2018

В настоящее время DataGrip выполняет расширенный поиск имен объектов в консоли.Он разрешает неквалифицированные имена как для базы данных / схемы, которую вы настроили в настройках источника данных, так и для базы данных / схемы, к которой вы подключились в консоли.

Причина проста: нам нужны запросы к схеме по умолчанию, которые уженаписано, чтобы быть выделенным, даже когда вы переключаете схему (представьте, что весь ваш код становится желтым сразу).Но, похоже, он плохо подходит для баз данных PG.

Мы хотим сделать его настраиваемым.Пожалуйста, смотрите DBE-6456

...