[Рецепт] PostGIS и psql

Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

[Рецепт] PostGIS и psql

Сообщение Denis Rykov » 01 ноя 2009, 22:18

При попытке выполнить простой запрос вида:

Код: Выделить всё

SELECT ST_AsText(geom) FROM russia_bound_full
к таблице russia_bound_full, содержащей одну единственную запись - полигон с границами РФ, состоящий из 32066 точек (определяется командой ST_npoints(geom)) pgAdmin возвращает пустую строку. Где-то в рассылке проскакивало, что pgAdmin не умеет работать с длиннми результатами, тогда я попробывал выгрузить результат запроса в файл, воспользовавшись консольным клиентом psql. Результат был несколько удивительным (см. вложение). Файл состоял из длинной-предлинной пустой строки, затем шла строка, состоящая из симолов "-" и только потом результат. Написал в рассылку постгисовцам и спустя 3! минуты получил ответ от P.Ramsey:
That's the table header, as psql valiantly tries to fit your
multi-megabyte output into an ASCII column aligned output.
Fundamentally, a lot of the assumptions database tools have about
column widths don't work so well for geometry.

P.
Вообщем эти странные строки в результате - ни что иное как строки форматирования результата psql. Так что если кто столкнется с подобным - сильно не пугайтесь, с вашей геометрией все в порядке, просто psql так форматирует результат.
Вложения
log.txt
(3.09 МБ) 1109 скачиваний
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: [Рецепт] PostGIS и psql

Сообщение Максим Дубинин » 01 ноя 2009, 22:36

то есть ни psql, ни pgadmin c такими записями работать не умеют?
как же тогда получить нормальное текстовое представление подобного объекта, парсить результат psql?
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: [Рецепт] PostGIS и psql

Сообщение Denis Rykov » 01 ноя 2009, 22:54

У psql довольно богатые возможности настройки формата выходного результата:

Код: Выделить всё

Output format options:
  -A              unaligned table output mode (-P format=unaligned)
  -H              HTML table output mode (-P format=html)
  -t              print rows only (-P tuples_only)
  -T TEXT         set HTML table tag attributes (width, border) (-P tableattr=)
  -x              turn on expanded table output (-P expanded)
  -P VAR[=ARG]    set printing option VAR to ARG (see \pset command)
  -F STRING       set field separator (default: "|") (-P fieldsep=)
  -R STRING       set record separator (default: newline) (-P recordsep=)
Использование ключа -A решает проблему.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: [Рецепт] PostGIS и psql

Сообщение Максим Дубинин » 02 ноя 2009, 08:42

а можешь приложить как такой результат будет выглядеть для завершенности?
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: [Рецепт] PostGIS и psql

Сообщение Denis Rykov » 02 ноя 2009, 20:50

Результат во вложении.
Вложения
log.txt
(1.03 МБ) 867 скачиваний
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 30 гостей