小编gre*_*reg的帖子

如何使用ANY数组运算符的正则表达式

我有一个包含作者数组的列.如何使用~*运算符检查其值是否与给定的正则表达式匹配?

~*操作需要一个要检查的字符串左侧和正则表达式匹配右侧.文件说ANY操作员显然必须在右侧

`

SELECT '^p' ~* ANY(authors) FROM book;
Run Code Online (Sandbox Code Playgroud)

`

因为PostgreSQL尝试将字符串^p与数组中包含的表达式进行匹配,所以不起作用.

任何的想法?

regex arrays postgresql

9
推荐指数
2
解决办法
4608
查看次数

将表转换为自定义类型数组

将一个列表转换为单维数组很容易;

my_array integer[];
my_array := ARRAY(SELECT * FROM single_column_table);
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我需要将具有多个列的表转换为自定义类型对象的数组;

所以我有自定义类型

TYPE dbfile AS
   (fileid integer,
    deleted boolean,
    name text,
    parentid integer,
    ...
ALTER TYPE dbfile
Run Code Online (Sandbox Code Playgroud)

和数组声明为

my_files dbfile[];

-- how to cast table to array of custom types???
my_files := SELECT * FROM get_files();  -- get_files return SETOF dbfile.
Run Code Online (Sandbox Code Playgroud)

如何将表转换为自定义类型数组?

ARRAY()不起作用,因为它需要单列.

postgresql plpgsql

5
推荐指数
1
解决办法
5527
查看次数

预期特征对象“dyn Responsability”,找到类型参数“T”

我正在尝试在 Rust 中实现一个责任链:

链接到游乐场

use std::error::Error;

struct Query {
    query: String,
}

struct Response {
    response: u64,
}

trait Responsability {
    fn take(&self, iterator: std::slice::Iter<Box<dyn Responsability>>, query: Query) -> Result<Response, Box<dyn Error>>;
}

struct ResponsabilityChain<T: Responsability> {
    responsabilities: Vec<Box<T>>,
}

impl<T: Responsability> ResponsabilityChain<T>
where
    T: Responsability,
{
    pub fn new(responsabilities: Vec<T>) -> Self {
        let responsabilities = responsabilities.into_iter()
            .map(|elt| Box::new(elt))
            .collect();
        
        Self { responsabilities }
    }
    
    pub fn launch(&self, query: Query) -> Result<Response, Box<dyn Error>> {
        let iterator = self.responsabilities.iter(); …
Run Code Online (Sandbox Code Playgroud)

rust trait-objects

5
推荐指数
1
解决办法
3124
查看次数

CLI 复制后文件元数据未保存在 S3 中

我在不同地区有两个桶(假设 A 和 B)。我在存储桶 A 中有带有元数据 (x-amz-meta-mymeta) 的档案。我确实使用 CLI 执行复制命令:

aws s3 cp s3://A/${file}.tar.gz s3://B/
Run Code Online (Sandbox Code Playgroud)

根据文件的不同,是否保留元数据。文件pikachu复制后具有相同的元数据,但pika-chu目标存储桶B中的文件不具有元数据。

我已阅读文档,但除了此 SO 答案中公开的信息之外,找不到任何其他信息。

即使目标文件已经存在或不存在,元数据也会丢失。

任何提示?

编辑:即使复制命令是,元数据也会丢失

aws s3 cp s3://A/${file}.tar.gz s3://B/${file}
Run Code Online (Sandbox Code Playgroud)

编辑:有关信息,文件的大小不同,pikachu几 Mb 大而pika-chu更像是 50Mb。

编辑:使用aws s3 cp没有多部分信息的文件上传。

amazon-s3 amazon-web-services

4
推荐指数
1
解决办法
3267
查看次数