Tag: plpgsql

Postgres查询来计算匹配的字符串

我有以下表格: id description additional_info 123 XYZ XYD 和一个数组: [{It is known to be XYZ},{It is know to be none},{It is know to be XYD}] 我需要以这样的方式映射内容:对于表的每个记录,我能够定义成功匹配的数量。 以上示例的结果将是: id RID Matches 1 123 2 只有位置0和2的内容与记录的description / additional_info Matches因此Matches在结果中为2。 我正在努力将其转换为Postgres中的查询 – 动态SQL以精确地在PL / pgSQL函数中创建VIEW 。

按重复属性分组

基本上我有一个表messages , user_id字段标识创建消息的用户。 当我在两个用户之间显示一个对话(一组消息)时,我希望能够通过user_id对消息进行分组,但这是一种棘手的方式: 假设有一些消息(按created_at desc排序): id: 1, user_id: 1 id: 2, user_id: 1 id: 3, user_id: 2 id: 4, user_id: 2 id: 5, user_id: 1 我希望按以下顺序获得3个消息组: [1,2], [3,4], [5] 它应该按* user_id *分组,直到它看到另一个,然后按那个分组。 我正在使用PostgreSQL,并乐于使用特定的东西,无论什么能带来最佳性能。

错误:必须是语言plpgsql的所有者

我正在使用PostgreSQL v9.0.1和Rails (以及它的deps)@ v2.3.8 ,由于使用了postgres的全文function,我有一个表定义为: CREATE TABLE affiliate_products( id integer NOT NULL, 名字字符变化(255), 模型字符变化(255), 说明文字, 价格数字(9,2), created_at时间戳没有时区, 没有时区的updated_at时间戳, textsearch_vector tsvector, ); 注意最后一行,这可以确保活动记录无法使用标准模式转储器进行处理,因此我必须在./config/environment.rb设置config.active_record.schema_format = :sql ; 并使用rake db:test:clone_structure而不是rake db:test:clone 。 这些都不是太显着,只是不方便 – 但是rake db:test:clone_structure失败并出现错误: ERROR: must be owner of language plpgsql 因为我得到的./db/development_schema.sql #16行: CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql; 在PostgreSQL v9.0+下,超级用户将语言plpsql安装到初始模板,然后该模板可用于新创建的模式。 我不能在没有解决这个问题的情况下对这个项目运行测试,甚至手动编辑./db/development_schema.sql也是徒劳的,因为每次运行rake db:test:clone_structure时都会重新生成它(并被rake db:test:clone忽略)。 我希望有人可以对此有所了解吗? 注意:我使用了pg […]