Как посмотреть столбец исходного кода только в функции, использующей утилиту командной строки psql? - PullRequest
0 голосов
/ 17 ноября 2010

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

haloror=# \df+ latest_vitals_trigger_function
                                                                                                             List of functions
 Schema |              Name              | Result data type | Argument data types | Volatility |  Owner   | Language |                                              Source code                                              | Description 
--------+--------------------------------+------------------+---------------------+------------+----------+----------+-------------------------------------------------------------------------------------------------------+-------------
 public | latest_vitals_trigger_function | trigger          |                     | volatile   | postgres | plpgsql  |                                                                                                       | 
                                                                                                                     :     declare                                                                                             
                                                                                                                     :       row record;                                                                                       
                                                                                                                     :     begin                                                                                               
                                                                                                                     :       for row in (select device_strap_status.id from device_strap_status inner join devices_users       
                                                                                                                     :                     on device_strap_status.id = devices_users.device_id where                           
                                                                                                                     :                     device_strap_status.is_fastened = 1 and devices_users.user_id = new.user_id) loop   
                                                                                                                     :           update latest_vitals set updated_at = now() where id = row.id;                                
                                                                                                                     :       if NOT FOUND then                                                                                 
                                                                                                                     :           insert into latest_vitals (id, updated_at) values (row.id, now());                            
                                                                                                                     :       end if;                                                                                           
                                                                                                                     :       end loop;                                                                                         
                                                                                                                     :       return null;                                                                                      
                                                                                                                     :     end;                                                                                                
                                                                                                                     :                                                                                                         
(1 row)

Ответы [ 2 ]

4 голосов
/ 17 ноября 2010

ОК, в любое время, когда вы захотите увидеть, что sql скрывается за командой psql \, просто запустите ее так:

psql -E mydb

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

Просто скопируйте и вставьте этот запрос и удалите ненужные столбцы из списка выбора.

1 голос
/ 21 ноября 2010

Обычно я запускаю «\ x» перед использованием «\ df +», в результате чего значения будут располагаться вертикально, а не горизонтально. Что хорошо, так как быстрый способ «прекратить распространение информации вправо». Я также обертываю двоичный файл psql, чтобы установить переменную окружения LESS, чтобы пейджер не переносил строки, что тоже помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...