小编May*_*ank的帖子

Postgresql PQgetvalue:数组返回

我创建的表格如下:

CREATE TABLE tbl_test
(
  id        bigserial    PRIMARY KEY,
  interest  int          ARRAY[2]
);
Run Code Online (Sandbox Code Playgroud)

PGresult* res用了PQexec(conn, "SELECT * FROM tbl_test");

现在,我怎样才能int[]PQgetvalue(res, 0, 1).
我不想依赖于定义的结构,array.h因为它们可能会改变.

我在Postgresql文档中找不到任何可以执行操作的API.
请指教.

此致,
Mayank

c postgresql libpq

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

HBase:行密钥大小

我来自RDBMS背景,最近开始阅读HBase.我知道没有二级索引,我们不应该尝试做类似的事情:

SELECT * FROM tbl_photo WHERE album_id = 1969
Run Code Online (Sandbox Code Playgroud)

我想知道是否所有信息都可用于创建行密钥本身.

例如.有一个用户将他/她的电子邮件注册到照片共享服务提供商.用户可以创建相册(可以创建多个相册)并将照片上传到相册.另一位用户评论了这些照片,一些用户对评论进行了评论.

确定此类投票的关键可能如下email:album:ts:photo:ts:comment:ts:vote:ts.这个键有意义吗?它比推荐时间长吗?(ts stands timestamp)

schema hbase

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

postgresql:嵌套插入

我有两张桌子.让我们说tblA和tblB.
我需要在tblA中插入一行,并使用返回的id作为值插入tblB中的一列.

我尝试在文档中找到这个,但无法得到它.好吧,是否有可能写一个声明(打算用于准备)

INSERT INTO tblB VALUES 
(DEFAULT, (INSERT INTO tblA (DEFAULT, 'x') RETURNING id), 'y')
Run Code Online (Sandbox Code Playgroud)

就像我们为SELECT做的那样?

或者我应该通过创建存储过程来执行此操作?我不确定我是否可以通过存储过程创建一个准备好的语句.

请指教.

此致,
Mayank

postgresql stored-procedures prepared-statement

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

C:读取大于4 GB的文件

我有一种只有文件句柄(FILE*)的阅读器.另一个进程继续写入我无法控制的同一个文件.

现在,当另一个进程将图像附加到该文件时,很可能很快文件大小将超过4 GB限制.

读取器进程使用图像文件的句柄,偏移量和长度读取该文件,该文件可以从某个DB中找到.

我的问题是读者如何能够从4GB大小后的文件中读取块.

我正在使用Win32机器.

编辑:我也在使用FreeBSD机器.

c freebsd file

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

CherryPy:如何将路由限制为仅POST

我有一个网页形式,看起来像:

<form action="/process_form/" method="post">
  <input type="text" name="login" value="login" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

处理这个问题的python类是:

class Handle:
  @cherrypy.expose()
  #@cherrypy.tools.post <-- Is something like this possible
  def index(self, login=None):
    print(login)
Run Code Online (Sandbox Code Playgroud)

CherryPy中有一种方法可以限制/process_form/对POST方法的调用吗?我的意思是如果用户输入http://www.example.com/process_form/他/她应该得到异常/错误或找不到页面?

cherrypy http-post python-3.x

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

C字符串附加

我有两个我要追加的C字符串,结果应该分配给lhs变量.我看到了一个静态初始化代码,如:

char* out = "May God" "Bless You";.

输出真的"May GodBless You"在打印出来.我理解这个结果可以输出一些未定义的行为.

代码实际上是在生产中,从未给出错误的结果.并不是说我们只在一个地方发表过这样的声明.可以在非常稳定的代码的多个地方看到它并用于形成sql查询.

C标准是否允许这种连接?

c string standards append

3
推荐指数
1
解决办法
4186
查看次数

高可用性和数据库设计

这是我脑海中长期存在的问题之一.Facebook或拥有超过一亿用户的任何此类网站/应用程序如何维护数据库?

我相信一切都不能放到一个数据库中.如果是这种情况,是否应该有多个数据库处理不同的部分?不同的部分如:一个状态数据库,一个用于照片,一个用于用户......

数据库模式可以建立关系吗?

如果平均一个用户有10个文本更新,50亿行(至少),这应该是Facebook实际处理的数据的10%,那么用户数量将增加5亿.

我在某处读到Facebook有1800多个sql实例,其中800多个是memcached.这些数据库实例应该相同吗?这些如何设计?

database-design high-availability

2
推荐指数
1
解决办法
360
查看次数

Postgresql:存储函数中的 dblink

我想将前 20 个行从 db_A 中的表 tbl_A 插入到 db_B 中的 tbl_B。
tbl_A 和 tbl_B 的架构是:

CREATE TABLE <tbl_name> (
 id   serial  PRIMARY KEY,
 int  a,
 int b
);
Run Code Online (Sandbox Code Playgroud)

我有一些与以下查询相关的问题

psql db_A
SELECT dblink_connect("dbname=db_B");
SELECT dblink_open('curse', 'SELECT id, a, b FROM tbl_B');
INSERT INTO tbl_A (SELECT id, a, b FROM dblink_fetch('curse', 20) AS (s_is int, s_a int, s_b int)) RETURNING a;
Run Code Online (Sandbox Code Playgroud)
  • 我可以将以下语句放入存储过程中:
  • 是否可以创建上述三个语句组合的存储过程并创建该过程的准备语句。

如果有人可以评论使用游标或在存储过程中使用 dblink 或任何其他更优雅地实现上述方法的做法有多好,我将不胜感激。

database postgresql dblink prepared-statement stored-functions

2
推荐指数
1
解决办法
4331
查看次数

PostgreSQL:准备交易

我有两个数据库服务器db1和db2。

db1有一个名为tbl_album
db2的表tbl_user_album

CREATE TABLE tbl_album
(
id    PRIMARY KEY,
name  varchar(128)
...
);

CREATE TABLE tbl_user_album
(
id          PRIMARY KEY,
album_id    bigint
...
);
Run Code Online (Sandbox Code Playgroud)

现在,如果用户想创建一个相册,我的PHP代码需要做的是:

  • 在db1中创建一条记录并保存其ID(主键)
  • 使用保存在第一条语句中的记录在db2中创建记录

是否可以将这两个语句保留在事务中?我也可以使用php解决方案。我的意思是,如果有需要php代码来保留db句柄并在这些句柄上进行提交或回滚的解决方案,我就很好。

任何帮助深表感谢。

php postgresql transactions distributed-transactions prepared-statement

2
推荐指数
1
解决办法
4156
查看次数

Postgresql存储过程:在另一个语句中使用id

是否可以使用两个insert语句创建存储过程,其中第一个insert语句中的id/primary_key将在第二个中使用.

例如.

INSERT INTO activity VALUES (DEFAULT, 'text', 'this is a test');

如果从上面的语句返回的id是x,则第二个插入将是:

INSERT INTO activity_tree VALUES (DEFAULT, **x**, user_id) or something like that.

我理解libpq具有可以从第一个语句中提供id的函数.

但我想将它们组合成一个存储过程.请指教.

此致,Mayank

postgresql stored-procedures

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

C:预期产量

#include <stdio.h>
int main()
{
    long long x = 0x8ce4b16b;
    long long y = x<<4;
    printf("%lx, %lx, abc\n", x, y);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到了
8ce4b16b,0,abc ......这没关系吗?

但是,如果我改变printfprintf("%lld, %lx, abc\n", x, y);

输出变为:
2363797867,ce4b16b0,abc

为什么会出现这种情况!! :(

c printf

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

Postgresql使用运算符ANY准备语句

SELECT*FROM tbl_emp WHERE interest = $ 1 AND emp_id = ANY(?)

以上语句是否正确用于函数PQprepare?

如果是,那么nParams的值应该是什么?PQexecPrepared将如何被调用?

此致,Mayank

postgresql prepared-statement

0
推荐指数
1
解决办法
1248
查看次数