小编bel*_*daz的帖子

将 EXPLAIN 结果放入表中?

我从Postgres 8.1 文档中看到生成EXPLAIN了类似表格数据的内容:

在 PostgreSQL 7.3 之前,计划以 NOTICE 消息的形式发出。现在它显示为查询结果(格式类似于具有单个文本列的表)。

我正在使用 9.0,文档说输出可以是多种类型,包括 TEXT 和 XML。我真正想做的是将输出视为标准查询结果,以便我可以为一个查询或一组查询生成一个简单的报告,例如,

SELECT maxcost FROM (
    EXPLAIN VERBOSE 
    SELECT COUNT(*) 
      FROM Mytable
     WHERE value>17);
Run Code Online (Sandbox Code Playgroud)

上面的内容在我尝试过的任何形式下都不起作用,我编写了该属性maxcost来演示提取特定数据位(在本例中为查询的最大估计成本)是多么简洁。我能做些什么来帮助我实现这一目标吗?我希望能够在简单的 SQL 控制台中工作。

postgresql

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

为错误的POST数据选择正确的HTTP响应代码

我怀疑这是一个非常微不足道的问题.我正在编写一个PHP脚本来响应AJAX查询.查询应该包含一些XML数据,PHP脚本处理这些数据然后返回响应.我想要考虑两个错误情况:

  1. 请求中没有POST数据; 要么
  2. XML中的错误数据(无效或格式良好的XML,或者某些模式检查失败)

在这种情况下,我相信我应该返回4xx响应代码.还有比400更合适的东西吗?

更多细节

为了进一步说明问题:客户端Javascript应用程序是用于教育目的的图编辑器.用户需要创建一个能够正确建模给定情况的图表.然后,学生可以提交图表,通过AJAX调用将图表的XML序列化发送到服务器.PHP脚本分析图表XML并构造一个XML报告,该报告作为AJAX响应发送到客户端.我最初描述的两种情况(其中没有XML POST数据或其中的无效XML)不应该在客户端请求时发生,但我认为正确捕获和处理这些情况是明智的.因此我认为4xx响应代码是合适的.XML报告结构不适合这些情况,空报告将构成一个完美的图表,这显然是不合适的,

html http-response-codes

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

双指针的 unique_ptr 处理

我正在使用具有以下签名的 C 函数:

/**
 * Read values from source file and store in a newly 
 * allocated array
 */
size_t load_array(FILE * source, double ** pdest) {
  size_t values_read;
  double * dest;
  // ...
  // Keep reading in values from source, incrementing values_read
  // resizing dest when needed.
  // ...
  *pdest = dest;
  return values_read;
}
Run Code Online (Sandbox Code Playgroud)

目前在我的 C++ 代码中被调用,如下所示:

double * my_array;
size_t array_length = load_array(source, &my_array);
// ... do stuff with my_array ...
free(my_array);
Run Code Online (Sandbox Code Playgroud)

我可以包my_arraystd::unique_ptr,这样 …

c++ unique-ptr

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

在哪里放置成员函数模板

周期性地让我感到沮丧的C++的一个方面是决定模板在头文件(传统上描述接口)和实现(.cpp)文件之间的位置.模板通常需要进入标题,暴露实现,有时会引入额外的标题,以前只需要包含在.cpp文件中.我最近又遇到了这个问题,下面显示了它的简化示例.

#include <iostream> // for ~Counter() and countAndPrint()

class Counter
{
  unsigned int count_;
public:
  Counter() : count_(0) {}
  virtual ~Counter();

  template<class T>
  void
  countAndPrint(const T&a);
};

Counter::~Counter() {
    std::cout << "total count=" << count_ << "\n";
}

template<class T>
void
Counter::countAndPrint(const T&a) {
  ++count_;
  std::cout << "counted: "<< a << "\n";
}

// Simple example class to use with Counter::countAndPrint
class IntPair {
  int a_;
  int b_;
public:
  IntPair(int a, int b) : a_(a), b_(b) {}
  friend std::ostream & …
Run Code Online (Sandbox Code Playgroud)

c++ member-functions function-templates

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

正确编写c ++ 11中的源函数

我的头疼了:我读了很多关于C++ 11x的移动语义的博客,我的大脑变得糊涂了,所以请有人给我一个关于如何使下面的代码有效工作的简短而又甜蜜的指南?给定一个类Foo,我希望能够编写返回Foo不同状态(有时称为源函数)的对象的函数,并尽可能高效地执行此操作.

class Foo {
    // Some methods and members
};

Foo getFirstFoo() {
    Foo foo;
    // Do some things to foo
    return foo;
} 

Foo getSecondFoo() {
    Foo foo;
    // Do some different things to foo
    return foo;
} 

int main() {
    Foo f = getFoo();
    // use f ...
    f = getSecondFoo();
    // use f ...
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不想修改Foo太多,并且想法是允许Foo通过各种非成员源函数创建各种对象,因此添加更多构造函数将缺少这一点.

在C++ 03中,我的选择是将返回的对象包装在一个auto_ptr(一个很大的缺点是收件人代码需要知道处理智能指针),或者交叉我的手指并希望可能发生某种优化(可能是第一行main,第二行则少).C++ 11x似乎通过移动语义提供了更好的东西,但我如何利用这些呢?所以我需要改变对象在源函数中返回的方式,或者添加一些移动构造函数Foo,或者两者兼而有之?

c++ c++11

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

Matlab数据库编写语句和绑定变量

我是相当新的Matlab的,但我一直在使用它通过以下对如何正式文件与数据库(PostgreSQL的在我的情况)互动过成功连接到使用JDBC驱动程序的数据库,然后执行查询用exec.但是,在后一种情况下给出的示例涉及将数据粘贴到查询中,这可能是低效的并且对SQL注入开放.

我真正想做的是使用绑定变量,例如在JDBC中PreparedStatement完成的.我在文档中找不到任何相关内容.有办法做到这一点吗?

database matlab sql-injection

4
推荐指数
2
解决办法
689
查看次数

嵌套模板类的C++非成员函数

我一直在编写几个包含嵌套迭代器类的类模板,需要进行相等比较.我认为这是相当典型的,比较是使用非成员(和非朋友)operator==功能进行的.这样做,我的编译器(我使用带有标志的Mingw32 GCC 4.4 -O3 -g -Wall)无法找到该功能,并且我已经用尽了可能的原因.

在下面相当大的代码块中有三个类:一个Base类,一个包含Base对象的Composed类,以及一个与Composed类相同的嵌套类,除了它嵌套在一个Outer类中.operator==每个都提供非成员函数.这些类是模板化和未模板化的形式(在各自的命名空间中),后者等同于前者专用于无符号整数.

main,比较每个类的两个相同对象.对于未模板化的情况,没有问题,但对于模板化的情况,编译器无法找到operator==.这是怎么回事?

#include <iostream>

namespace templated {

template<typename T>
class Base {
  T t_;
public:
  explicit Base(const T& t) : t_(t) {}

  bool
  equal(const Base& x) const {
    return x.t_==t_;
  }
};

template<typename T>
bool
operator==(const Base<T> &x, const Base<T> &y) {
  return x.equal(y);
}

template<typename T>
class Composed {
  typedef Base<T> Base_;
  Base_ base_;
public:
  explicit Composed(const T& t) : base_(t) {}
  bool equal(const …
Run Code Online (Sandbox Code Playgroud)

c++ templates nested-class

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

将进攻性句子列入黑名单

我创造了一款面向年轻观众的游戏,并试图过滤掉亵渎和冒犯的名字

#include <iostream>
#include <vector>

bool isBanned( std::string text ) {
    std::vector bannedSent = {
        "Profanity1",
        "Profanity2",
        "Profanity3",
        "Profanity4"
    };
    for(auto &i : bannedSent) {
        if(text == i) { return true; }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我在编写错误时谈到"模板参数",就行了std::vector,这是什么意思?

c++ templates vector

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