Страница 1 из 1

[Рецепт] PostGIS и psql

Добавлено: 01 ноя 2009, 22:18
Denis Rykov
При попытке выполнить простой запрос вида:

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

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 так форматирует результат.

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

Добавлено: 01 ноя 2009, 22:36
Максим Дубинин
то есть ни psql, ни pgadmin c такими записями работать не умеют?
как же тогда получить нормальное текстовое представление подобного объекта, парсить результат psql?

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

Добавлено: 01 ноя 2009, 22:54
Denis Rykov
У 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 решает проблему.

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

Добавлено: 02 ноя 2009, 08:42
Максим Дубинин
а можешь приложить как такой результат будет выглядеть для завершенности?

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

Добавлено: 02 ноя 2009, 20:50
Denis Rykov
Результат во вложении.