Гомойконичность и SQL - PullRequest
       56

Гомойконичность и SQL

2 голосов
/ 19 ноября 2010

В настоящее время я использую emacs sql-mode в качестве моей оболочки sql, (упрощенный) ответ на запрос приведен ниже:

my_db=# select * from visit limit 4;

num |        visit_key            |          created           |    expiry
----+-----------------------------+----------------------------+------------
 1  | 0f6fb8603f4dfe026d88998d81a | 2008-03-02 15:17:56.899817 | 2008-03-02
 2  | 7c389163ff611155f97af692426 | 2008-02-14 12:46:11.02434  | 2008-02-14
 3  | 3ecba0cfb4e4e0fdd6a8be87b35 | 2008-02-14 16:33:34.797517 | 2008-02-14
 4  | 89285112ef2d753bd6f5e51056f | 2008-02-21 14:37:47.368657 | 2008-02-21
(4 rows)

Если я хочу затем сформулировать другой запрос на основе этих данных, например,

my_db=# select visit_key, created from visit where expiry = '2008-03-02' 
           and num > 10;

Вы увидите, что мне нужно добавить запятую между visit_key и created и окружить значение срока действия кавычками.

Существует ли оболочка SQL DB, которая показывает ее содержимое более гомокально , чтобы я мог минимизировать такого рода редактирование? например

num, visit_key, created, expiry           
(1, '0f6fb8603f4dfe026d88998d81a', '2008-03-02 15:17:56.899817', '2008-03-02')

или

(num=1, visit_key='0f6fb8603f4dfe026d88998d81a', 
    created='2008-03-02 15:17:56.899817', expiry='2008-03-02')      

Я использую postgresql, кстати.

Ответы [ 2 ]

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

Вот одна идея, которая похожа на то, что я делаю иногда, хотя я не уверен, что это именно то, что вы просите:

Запустите компилятор Lisp (например, SBCL ) в SLIME .Затем загрузите CLSQL .Он имеет «Язык манипулирования функциональными данными» ( Документация SELECT ), который может помочь вам сделать то, что вы хотите, возможно, в сочетании с возможностями автозаполнения SLIME.Если нет, то легко определить функции и макросы Lisp (при условии, что вы знаете Lisp, но вы уже Emacser!).

Готово, он не дает красиво отформатированные таблицычто большинство интерфейсов SQL имеют, но даже это не так уж сложно добавить.И Лисп, безусловно, достаточно мощный, чтобы можно было легко найти способы облегчения ваших общих операций.

0 голосов
/ 03 октября 2013

Я обнаружил, что следующие изменения в psql как-то дают мне гомоконичность:

=# select remote_ip, referer, http_method, time from hit limit 1;
    remote_ip    | referer | http_method |           time            
-----------------+---------+-------------+---------------------------
 213.233.132.148 |         | GET         | 2013-08-27 08:01:42.38808
(1 row)
=# \a
Output format is unaligned.
=# \f ''', '''
Field separator is "', '".
=# \t
Showing only tuples.
=# select remote_ip, referer, http_method, time from hit limit 1;
213.233.132.148', '', 'GET', '2013-08-27 08:01:42.38808

предостережения: все является строкой, и в ней отсутствуют начальные и конечные кавычки.

...