3

PostgreSQL 9.2 具有原生 JSON 支持。但是,我想将人类可读的配置文件存储在 YAML 中。而且我想我想索引一些(但不是全部)配置文件值。因此我想知道:

  1. 是否有可能在 Postgres 中包含 [解析 Yaml 的第三方 Javascript 库],例如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 解析代码(如果我不能添加 3rd 方库或声明可重用函数)。

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

(我用谷歌搜索了“ postgresql plv8 reusable function ”和“ postgresql plv8 library ”,但没有发现任何相关性)

4

1 回答 1

4

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

于 2012-10-12T15:43:13.150 回答