PostgreSQL 源码解读(206)- 查询#119(数据结构RangSubselect等)
本节简单介绍了PostgreSQL在执行逻辑优化中相关的数据结构,包括RangeSubselect/Alias/RangeVar/ResTarget/ColumnRef.
PostgreSQL DBA(40) - PG 12 pg_promote
在PG 12以前的版本,备库提升为主库需在备库主机上执行命令或者通过生成触发文件进行触发,在PG 12中,可通过客户端连接到数据库后执行pg_promote函数实现.其更新说明如下: This function is able to promote a standby with this new SQL-callable function. Execution access can be
PostgreSQL 源码解读(205)- 查询#118(数据结构RangeTblEntry)
本节简单介绍了PostgreSQL在执行逻辑优化中对应Relation的数据结构:RangeTblEntry.
PostgreSQL DBA(39) - PG 12 Functions for partitions
在PG 12以前的版本,获取分区表中的分区以及子分区等信息需要使用递归CTE查询脚本来获取,不直观而且麻烦,在PG 12中新增了pg_partition_tree和pg_partition_root系统函数分别用于获取分区树和分区的root relation.
PostgreSQL 源码解读(204)- 查询#117(数据结构SelectStmt&Value)
本节简单介绍了PostgreSQL在执行parse中重要的两个数据结构:SelectStmt&Value.
PostgreSQL DBA(38) - PG 12 Connection slots and WAL senders
PG 12的新特性Connection slots and WAL senders,详细描述如下: Move max_wal_senders out of max_connections for connection slot handling.Since its introduction, max_wal_senders is counted as part of max_connecti
PostgreSQL DBA(37) - PG 12 REINDEX CONCURRENTLY
PG 12的新特性REINDEX CONCURRENTLY
PostgreSQL 源码解读(203)- 查询#116(类型转换实现)
本节简单介绍了PostgreSQL中的类型转换的具体实现.
PostgreSQL 源码解读(202)- 查询#115(类型转换)
本节简单介绍了PostgreSQL中的类型转换实现.首先来看看几个示例SQL: testdb=# testdb=# drop table if exists t_conv; om t_conv where id = '1'::text; explain verbose select * from t_conv where id > '13'::text; DROP TABLE
Oracle vs PostgreSQL,研发注意事项(11)- PostgreSQL数据类型转换规则#3
PostgreSQL与Oracle在数据比较上存在差异,本节简单介绍OPostgreSQL的数据类型转换规则(第三部分).
Oracle vs PostgreSQL,研发注意事项(10)- PostgreSQL数据类型转换规则#2
PostgreSQL与Oracle在数据比较上存在差异,本节简单介绍OPostgreSQL的数据类型转换规则(第二部分).
Oracle vs PostgreSQL,研发注意事项(9)- PostgreSQL数据类型转换规则#1
PostgreSQL与Oracle在数据比较上存在差异,本节简单介绍PostgreSQL的数据类型转换规则.
PostgreSQL 源码解读(201)- PG 12 BlackholeAM for tables
PostgreSQL 12 引入了可插入表存储接口(Pluggable storage for tables),近日Michael Paquier提交了一份Blackhole Table Access Method的模板方法. 之所以称为Blackhole(黑洞),是因为不管你在数据表上执行什么操作,都会看不到任何的反应,似乎被"黑洞"吸进去了,下面我们先睹为快.
Oracle vs PostgreSQL,研发注意事项(8)- Oracle数据比较规则
PostgreSQL与Oracle在数据比较上存在差异,本节简单介绍Oracle的数据比较原则. 一、数值型所有负数小于0或者整数,如-1 < 100/-100 < -1.浮点数NaN(not a number)比其他所有数值都要大,但等于自身即NaN. 二、日期型较晚的日期大于较早的日期.比如2005年3月29日小于2006年1月18日. 三、字符型字符值的比较基于两个度量:A
PostgreSQL DBA(36) - PG 12 Inlined WITH queries
PG 12的新特性Inlined WITH queries (Common table expressions),描述如下: Common table expressions (aka WITH queries) can now be automatically inlined in a query if they a) are not recursive, b) do not have a
PostgreSQL DBA(35) - CTE
CTE(Common Table Expressions)是指使用WITH语句定义的通用表表达式。如: testdb=# explain verbose WITH t1 AS ( SELECT * FROM t_w1 WHERE t_w1.id % 4 = 0 ) SELECT * FROM t1 JOIN t_w2 as t2 ON t2.id = t1.id;
PostgreSQL 源码解读(200)- PG 12 Pluggable storage for tables接口浅析
PostgreSQL 12 beta 1 已于近期发布,此版本包含了众多新特性,其中可插拔表存储接口允许创建和使用不同的表存储方式,本节简单探究了“Pluggable storage for tables”的实现。
Polyphase Merge Sort
Polyphase Merge Sort是一种External Sort算法,给定N个Tapes,只需要1个Tapes作为Output设备,而且读写均为顺序读写,对于Disk/Tapes等外存设备比较友好. 在介绍Polyphase Merge Sort之前,有必要先行简要介绍Merge Sort/Balanced N-way Merge Sort.
PostgreSQL 源码解读(199)- 查询#114(排序#7 - inittapes&dumptuples)
本节继续介绍排序的实现,主要内容是tuplesort_puttupleslot->puttuple_common调用的inittapes和dumptuples函数.
PostgreSQL 源码解读(198)- 查询#113(排序#6 - Tuplesortstate)
本节继续介绍排序的实现,上一节介绍了tuplesort_performsort->mergeruns函数,下面介绍与排序相关的重要数据结构:Tuplesortstate.