From: | Jaimin Pan <jaimin(dot)pan(at)gmail(dot)com> |
---|---|
To: | Quan Zongliang <zongliang(dot)quan(at)postgresdata(dot)com> |
Cc: | "pgsql-zh-general(at)postgresql(dot)org" <pgsql-zh-general(at)postgresql(dot)org> |
Subject: | Re: [pgsql-zh-general] 随机字符串函数的C语言实现 |
Date: | 2017-09-05 09:01:54 |
Message-ID: | CABP8UDTSWgKpSSg2bO45t9sQatVzyasPv4Nm6rG0HPx55JKJxQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-zh-general |
试一试
md5(random()::text);
select pg_backend_pid(),s,'string '|| md5(random()::text) from (select
generate_series(2000,8000,1) s) as g;
Time: 239.733 ms
2017-09-05 16:28 GMT+08:00 Quan Zongliang <zongliang(dot)quan(at)postgresdata(dot)com>:
> 各位下午好
> 邮件列表沉寂太久,激活一下大家的情绪。
>
> 分享一个C语言实现的随机字符串函数:
> PG_FUNCTION_INFO_V1(random_string);
> Datum
> random_string(PG_FUNCTION_ARGS)
> {
> int32 length = PG_GETARG_INT32(0);
> int32 i;
> const char chars[] = "0123456789ABCDEFGHIJKLMNOPQRS
> TUVWXYZabcdefghijklmnopqrstuvwxyz";
> char *result;
>
> if (length < 0)
> PG_RETURN_NULL();
>
> if (length == 0)
> PG_RETURN_TEXT_P(cstring_to_text(""));
>
> result = palloc(length + 1);
> if (result == NULL)
> ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY),
> errmsg("out of memory")));
>
> for (i=0; i<length; i++)
> {
> result[i] = chars[random()%(sizeof(chars)-1)];
> }
> result[i] = '\0';
>
> PG_RETURN_TEXT_P(cstring_to_text(result));
> }
>
> 原文见:
> https://my.oschina.net/quanzl/blog/1529438
>
> 欢迎关注我司公众号:postgresdata-news
>
> --
> 权宗亮
> 神州飞象(北京)数据科技有限公司
> 我们的力量源自最先进的开源数据库PostgreSQL
> zongliang(dot)quan(at)postgresdata(dot)com
>
>
>
> --
> Sent via pgsql-zh-general mailing list (pgsql-zh-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-zh-general
>
From | Date | Subject | |
---|---|---|---|
Next Message | winston cheung | 2017-09-05 09:11:48 | Re: Re: [pgsql-zh-general] 随机字符串函数的C语言实现 |
Previous Message | Quan Zongliang | 2017-09-05 08:28:18 | 随机字符串函数的C语言实现 |