使用PostgreSQL存储和索引YAML,使用Javascript lib或可重用函数?

时间:2012-10-11 04:33:10

标签: postgresql plv8

PostgreSQL 9.2具有本机JSON支持。但是,我想在YAML中存储人类可读的配置文件。我想我想索引一些(但不是全部)配置文件值。所以我想知道:

  1. 是否有可能在Postgres中包含[解析Yaml的第三方Javascript库],例如js-yaml。然后我可以拥有自己的YAML Javascript助手,就像PostgreSQL 9.2中内置的JSON助手一样。
  2. 可替换地:

    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
      
    2. 最糟糕的情况是我需要在每个PostgreSQL存储过程中复制YAML解析代码(如果我不能添加第三方库或声明可重用函数)。

      (在我的情况下,表现并不是非常重要。)

      (我已经搜索了一段时间用于“ postgresql plv8可重用函数”和“ postgresql plv8库”,但没有发现任何相关性)

1 个答案:

答案 0 :(得分:3)

pl / v8程序语言可能是要走的路。它是一种“可信”的语言,这意味着(除其他外)它提供任何方式来执行“从此文件加载外部模块”的事情。但它确实有一个'find_function()'方法让你定义自己的javascript函数并从另一个函数(js或不是js)调用它。请参阅此博客文章中的描述:
http://umitanuki.hatenablog.com/entry/2012/04/10/171935