debug_print_parse 是一个 配置参数,用于控制查询的解析树是否被记录。
debug_print_parse 在 PostgreSQL 7.1 中被添加。
默认值
debug_print_parse 的默认值为:off。
按 PostgreSQL 版本详细信息
debug_print_parse (PostgreSQL 19)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 18)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 17)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 16)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 15)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 14)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 13)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 12)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 11)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 10)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.6)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.5)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.4)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.3)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.2)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.1)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 9.0)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 8.4)
| 设置 |
off |
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
记录每个查询的解析树。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
off |
| 重置值 |
off |
| 源文件 |
|
| 源行 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 8.3)
| 设置 |
|
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
将解析树打印到服务器日志。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
文档: debug_print_parse
debug_print_parse (PostgreSQL 8.2)
| 设置 |
|
| 单位 |
|
| 类别 |
报告和日志记录 / 记录什么 |
| 简短描述 |
将解析树打印到服务器日志。 |
| 扩展描述 |
|
| 上下文 |
user |
| 变量类型 |
bool |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
文档: debug_print_parse
变更历史
示例
启用 debug_print_parse 后,对任意查询(这里是向分区表执行的 INSERT)的示例输出。
[2020-08-16 14:32:05 UTC] psql postgres postgres LOG: 00000: statement: INSERT INTO part_parent VALUES(1,'foo') RETURNING *;
[2020-08-16 14:32:05 UTC] psql postgres postgres LOCATION: exec_simple_query, postgres.c:1044
[2020-08-16 14:32:05 UTC] psql postgres postgres LOG: 00000: parse tree:
[2020-08-16 14:32:05 UTC] psql postgres postgres DETAIL: {QUERY
:commandType 3
:querySource 0
:canSetTag true
:utilityStmt <>
:resultRelation 1
:hasAggs false
:hasWindowFuncs false
:hasTargetSRFs false
:hasSubLinks false
:hasDistinctOn false
:hasRecursive false
:hasModifyingCTE false
:hasForUpdate false
:hasRowSecurity false
:cteList <>
:rtable (
{RTE
:alias <>
:eref
{ALIAS
:aliasname part_parent
:colnames ("id" "val")
}
:rtekind 0
:relid 16490
:relkind p
:rellockmode 3
:tablesample <>
:lateral false
:inh false
:inFromCl false
:requiredPerms 3
:checkAsUser 0
:selectedCols (b 8 9)
:insertedCols (b 8 9)
:updatedCols (b)
:extraUpdatedCols (b)
:securityQuals <>
}
)
:jointree
{FROMEXPR
:fromlist <>
:quals <>
}
:targetList (
{TARGETENTRY
:expr
{CONST
:consttype 23
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 31
:constvalue 4 [ 1 0 0 0 0 0 0 0 ]
}
:resno 1
:resname id
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
{TARGETENTRY
:expr
{FUNCEXPR
:funcid 669
:funcresulttype 1043
:funcretset false
:funcvariadic false
:funcformat 2
:funccollid 100
:inputcollid 100
:args (
{CONST
:consttype 1043
:consttypmod -1
:constcollid 100
:constlen -1
:constbyval false
:constisnull false
:location 33
:constvalue 7 [ 28 0 0 0 102 111 111 ]
}
{CONST
:consttype 23
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location -1
:constvalue 4 [ 36 0 0 0 0 0 0 0 ]
}
{CONST
:consttype 16
:consttypmod -1
:constcollid 0
:constlen 1
:constbyval true
:constisnull false
:location -1
:constvalue 1 [ 0 0 0 0 0 0 0 0 ]
}
)
:location -1
}
:resno 2
:resname val
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:override 0
:onConflict <>
:returningList (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 1
:vartype 23
:vartypmod -1
:varcollid 0
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 51
}
:resno 1
:resname id
:ressortgroupref 0
:resorigtbl 16490
:resorigcol 1
:resjunk false
}
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 2
:vartype 1043
:vartypmod 36
:varcollid 100
:varlevelsup 0
:varnosyn 1
:varattnosyn 2
:location 51
}
:resno 2
:resname val
:ressortgroupref 0
:resorigtbl 16490
:resorigcol 2
:resjunk false
}
)
:groupClause <>
:groupingSets <>
:havingQual <>
:windowClause <>
:distinctClause <>
:sortClause <>
:limitOffset <>
:limitCount <>
:limitOption 0
:rowMarks <>
:setOperations <>
:constraintDeps <>
:withCheckOptions <>
:stmt_location 0
:stmt_len 52
}
[2020-08-16 14:32:05 UTC] psql postgres postgres LOCATION: elog_node_display, print.c:85