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

2024-03-15

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

  1. 例如,是否可以在 Postgres 中包含 [解析 Yaml 的第三方 Javascript 库]js-yaml https://github.com/nodeca/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 解析代码(如果我无法添加第 3 方库或声明可重用函数)。

(就我而言,性能并不是非常重要。)

(我用谷歌搜索了一段时间“postgresql plv8 可重用函数" and "postgresql plv8 库“但没有发现任何相关内容)


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PostgreSQL、Javascript 库或可重用函数存储和索引 YAML? 的相关文章

随机推荐

  • 与 StructureMap 4.6 瞬态生命周期的混淆

    我使用 StructureMap 4 6 作为我的 IoC 容器 我对其生命周期有点困惑 正如我在其文档中所读到的那样 Transient 将为每个容器创建一个对象实例 支持的生命周期 http structuremap github io
  • eval() 和 new Function() 是同一件事吗?

    这两个函数在幕后做同样的事情吗 在单语句函数中 var evaluate function string return eval string var func function string return new Function ret
  • SQL Server 2005:为什么命名事务?

    我一直在整理 SQL Server 中的整个嵌套事务 并且对嵌套事务的行为有了一些了解 当嵌套事务时 只有 最外层提交实际上会 犯罪 嵌套时 Commit Trans txn name 将始终适用于最里面 交易 即使 txn name 指的
  • 增强型 For 循环 - 对象数组

    好的 我有一个名为 Dog 的类 它接受两个参数 一个字符串和一个整数 该类有一个名为 bark 的方法 该方法根据传递给 Dog 构造函数的整数打印一个字符串 我还有一个名为 Kennel 的类 它创建了 5 个 Dog 的数组 看起来像
  • 只能检索有限数量的页面

    我想知道为什么我无法检索到第165页之后的更多页数据 page number is 165 4 image gif page number is 165 13 page number is 165 3 page number is 165
  • 复制 S3 存储桶(包括版本)

    有没有办法复制 S3 存储桶 包括对象的版本 我读到复制存储桶的方法是使用命令行工具 aws s3 sync s3
  • ASP.NET MVC 3 和 NHibernate 脚手架

    我找到了这篇文章 http blog stevensanderson com 2011 01 13 scaffold your aspnet mvc 3 project with the mvcscaffolding package htt
  • Heroku SSL 端点 - “没有这样的应用程序”

    有什么想法为什么当我访问 herokussl com URL 时 添加证书和 Heroku SSL 端点后 可能会收到 No Such App 错误 我按照这里的说明进行操作 https devcenter heroku com artic
  • 检测到依赖循环导入/无循环

    我正在尝试在 ES6 中设置 API 端点 在我的主服务器文件中 我尝试导入路由器模块 但收到错误 检测到依赖循环导入 无循环 请在下面找到我的代码以获得许可和帮助 import express from express import bo
  • 球体上的 3D 坐标为纬度和经度

    我得到以下信息 存在一个原点为 0 0 0 半径为 R 的球体 进行射线球体相交后 我知道 3D 空间中球体上的一个点 XYZ 直线穿过球体外壳的 3D 空间中的确切位置 对于我的程序 我想计算球体上 XYZ 点的纬度和经度 但我无法想出
  • 删除所有 Git 提交历史记录

    我正在尝试从 Github 获取一个存储库 恢复过去的标签 将其推送到另一个远程并删除所有历史记录 除了删除所有提交日志之外 我可以执行以下所有操作 我缺少什么 git clone https github com user user re
  • asp.net mvc 模型与实体框架模型

    在 asp net mvc model 文件夹中创建模型是最佳实践吗 将这些模型与您的视图结合使用 并使用服务层将我的模型 调整 为 EF 模型 或者您是否使用过其他方法 这种方法的问题在于 大多数时候我的 自制 模型是 EF 模型的副本
  • 失败 [INSTALL_FAILED_UPDATE_INCOMPATIBLE],然后是 DELETE_FAILED_INTERNAL_ERROR

    当我尝试在 nexus5 设备上运行应用程序时 android studio 打开错误窗口 显示 安装失败 并显示消息 INSTALL FAILED CONFLICTING PROVIDER 然后系统询问我是否要卸载现有应用程序 即使设备上
  • 将 MySQL 日期时间转换为时间戳

    我正在尝试将日期时间转换为时间戳 但 mysql 向我发出警告 并且转换后的值也是错误的 这是SQL查询 UPDATE table1 A table2 B SET B date added UNIX TIMESTAMP STR TO DAT
  • sqlite 搜索多列

    我正在尝试对表中的所有列执行区分大小写的搜索 所以我做了类似的事情 Select From mytable Where col1 col2 etc like SomeValue 但对于大写和小写它总是返回相同的结果 如果我这样做 Selec
  • 如何使用 JpegTran 递归处理 Windows 目录中的所有图像并覆盖它们?

    现在我有以下批处理文件用于处理图像 echo none cd 1 md 1 ProcessedJPEGS for i in jpg do C Program Files Image Optimization jpegtran exe opt
  • 使用 Gradle Release 插件进行 Android 构建

    我想用Gradle 发布插件 https github com townsfolk gradle release in Android Project 我配置了它 一切都很好 除了一件事 Gradle Release Plugin更改项目版
  • Django 模型子类的类型提示

    我有 Django 视图的辅助函数 如下所示 代码如下 它返回 None 或与给定查询匹配的单个对象 例如pk 1 from typing import Type Optional from django db models import
  • 哪个 API 允许我将 PayPal 保存为可重复使用的付款类型

    我目前正在开展一个项目 将 PayPal 实施为类似于保存的信用卡的可重复使用的付款选项 我在类似的网站上看到过这样做http www fab com http www fab com它允许用户登录 PayPal 一次 然后存储他们的付款信
  • 使用 PostgreSQL、Javascript 库或可重用函数存储和索引 YAML?

    PostgreSQL http www postgresql org 9 2 具有原生 JSON 支持 不过 我想将人类可读的配置文件存储在 YAML 中 我想我想索引一些 但不是全部 配置文件值 因此我想知道 例如 是否可以在 Postg