2012-10-11 14 views
2

PostgreSQL 9.2具有本機JSON支持。然而,我想存儲人類可讀的配置文件,在YAML中。我想我想索引一些(但不是全部)配置文件值。所以我想知道:使用PostgreSQL存儲和索引YAML,使用Javascript庫或可重用函數?

  1. 是它的某種方式可能包括[第三方JavaScript庫,解析YAML] Postgres裏,例如js-yaml。然後,我可以擁有自己的YAML Javascript助手,就像PostgreSQL 9.2中內置的JSON助手一樣。

或者:

  1. 是有可能申報個人可重用的JavaScript功能?如果是這樣的話,我可以添加自己的YAML剖析功能(基於簡單的正則表達式),是能夠解析YAML的一個子集,例如這裏的頂級鍵值對:

    # some "top level key-value paris": 
    the_key: 'the value' 
    another_key: 'another value' 
    # But this however: 
    would_be_too_complicated_to_parse_manually_with_regexps: | 
        block string 
        with newlines 
    

最糟糕的情況是,我需要在每個PostgreSQL存儲過程中複製YAML解析代碼(如果我不能添加第三方庫或聲明可重用函數)。

(性能不會是在我的情況非常重要)。

(我GOOGLE了一段時間「PostgreSQL的plv8可重複使用的功能」和「PostgreSQL的plv8庫」,但什麼也沒有發現相關的)

回答

3

pl/v8過程式語言可能是要走的路。這是一種'可信'的語言,這意味着(其中包括)而不是提供任何方式來執行'從該文件加載外部模塊'的事情。但它確實有一個'find_function()'方法來讓你定義你自己的javascript函數,並從另一個函數(js或不)中調用它。見本博客文章的描述:
http://umitanuki.hatenablog.com/entry/2012/04/10/171935

+0

好的,謝謝。然後,我認爲,使用Yaml代替Json似乎是可行的:-) - 我想知道是否可以在這樣的「CREATE FUNCTION」語句中內聯任何完整的Yaml實現。 – KajMagnus

+0

我有點難以理解如何使用plv8中的find_function加載js-yaml – user433342

相關問題