pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
add_missing_from (boolean) #打开时,如果查询引用的表尚未出现在FROM子句中,会自动把它添加进去。这一行为不符合 SQL 标准,许多人也不喜欢它,因为它可能掩盖错误(例如本应引用表的别名却引用了表本身)。默认值是off。为了与 8.1 之前默认允许这一行为的PostgreSQL版本兼容,可以启用这个变量。
注意,即使启用了此变量,查询每引用一个隐式FROM项,仍会发出一条警告消息。建议用户更新其应用,把查询引用的所有表都加到查询的FROM子句(对DELETE则是USING子句)中,从而不依赖这一行为。
regex_flavor (string) #正则表达式的“风格”可以设置为 advanced、extended 或 basic。 默认值是 advanced。extended 设置可用于与 PostgreSQL 7.4 之前的版本精确向后兼容。详见 第 9.7.3.1 节。
sql_inheritance (boolean) #这个设置控制不带修饰的表引用是否被认为包括继承子表。默认值为 on,即子表被包括在内(因此,默认假定有 * 后缀)。如果设为 off,子表不被包括(因此,假定有ONLY前缀)。SQL 标准要求包括子表,因此off设置不符合标准,但提供它是为了与 7.1 之前版本的 PostgreSQL 兼容。更多信息见第 5.8 节。
backslash_quote (string) #控制字符串字面量中的引号是否能够用\'表示。首选的、符合 SQL 标准的表示引号的方法是将其双写(''),但PostgreSQL历史上也接受\'。不过,使用\'会带来安全风险,因为在某些客户端字符集编码中,存在最后一字节在数值上等价于 ASCII \的多字节字符。如果客户端代码转义不当,就可能发生 SQL 注入攻击。让服务器拒绝引号看起来是被反斜线转义的查询,可以避免这种风险。backslash_quote的允许值是on(总是允许\')、off(总是拒绝)和safe_encoding(仅当客户端编码不允许在多字节字符中出现 ASCII \时允许)。默认设置是safe_encoding。
default_with_oids (boolean) #控制在既未指定WITH OIDS也未指定WITHOUT OIDS时,CREATE TABLE和CREATE TABLE AS创建的新表是否包含 OID 列。它还决定SELECT INTO创建的表是否包含 OID。在PostgreSQL 8.1 中,default_with_oids默认被禁用;在此之前的PostgreSQL版本中,它默认是打开的。
在用户表中使用 OID 已被认为过时,因此大多数安装应让这个变量保持禁用状态。需要为特定表使用 OID 的应用应在创建该表时指定WITH OIDS。可以为了兼容不遵循这一行为的旧应用而启用这个变量。
escape_string_warning (boolean) #打开时,如果在普通字符串字面量中('...'语法)出现了 一个反斜线(\)并且 standard_conforming_strings为关闭,那么就会发出一个警告。默认值是off。 希望使用反斜线作为转义符的应用应该被修改来使用转义字符串语法(E'...'),因为为了 SQL 兼容性,普通字符串的默认行为将在将来的版本中改变。这个变量可以被启用来帮助检测将会受损的应用。
未来PostgreSQL版本的默认行为将会改变,因此建议尽快迁移应用。
transform_null_equals (boolean) #当打开时,形如(或expr = NULLNULL = )的表达式将被当做expr,也就是说,如果expr IS NULLexpr计算结果为空值则返回真,否则返回假。正确的 SQL 标准兼容的行为总是返回空值(未知)。因此这个参数默认为expr = NULLoff。
不过,在Microsoft Access里的过滤表单生成的查询似乎使用来测试空值,因此,如果你使用这个接口访问数据库,你可能想把这个选项打开。因为expr = NULL形式的表达式总是返回空值(使用 SQL 标准解释),它们不是非常有用并且在普通应用中也不常见,因此这个选项实际上没有什么危害。但是新用户常常对涉及空值的表达式语义感到困惑,因此这个选项默认为关闭。expr = NULL
请注意这个选项只影响= NULL形式,而不影响其它比较操作符或者其它与一些涉及等值操作符的表达式在计算上等效的其他表达式(例如IN)。因此,这个选项不能普遍修复错误的程序写法。
相关信息请见第 9.2 节。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。