![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
postgresql
文章平均质量分 53
liguangxian2018
从两个字符(0和1)构造的不是第三个字符,而是星辰.
展开
-
postgresql UPDATE 起别名出现更新错误
UPDATE环境: postgresql 10.5redhat7.上下文:db1=# \d List of relations Schema | Name | Type | Owner --------+----------------+----------+----------- public | stu_bk ...原创 2018-12-18 15:29:51 · 8034 阅读 · 0 评论 -
PostgreSQL:trunc函数
PostgreSQL:trunc函数这个PostgreSQL教程解释了如何在语法和示例中使用PostgreSQL trunc函数。描述PostgreSQL的TRUNC函数返回一个数截断到一定的小数位数。句法PostgreSQL中trunc函数的语法是:trunc( number, [ decimal_places ] )参数或参数数要截断的数字。decimal_places可选的。要截断的小数位数...翻译 2018-05-02 14:35:13 · 20607 阅读 · 0 评论 -
Makefile:94: recipe for target 'install-***-recurse' failed 解决方法
1.当安装postgresql插件扩展时,contrib下面make&make install出现下面错误信息.make -C test installmake[1]: *** test: 没有那个文件或目录。 停止。Makefile:94: recipe for target 'install-test-recurse' failedmake: *** [install-test-...原创 2018-04-23 09:30:01 · 27564 阅读 · 1 评论 -
postgresql Hook机制加实例详解
摘要:Hook,wiki说明文档: hook实际上就是static 的函数指针.hook工作原理:每一个hook是由一个全局性的函数指针构成的。服务端进行运行初始化其为NULL,当数据库必须调用的时候,首先会检测是否为NULL,不是则优先调用函数,否则执行标准函数。设置函数指针:当数据库载入共享库时,首先会将其载入到内存中,然后执行一个函数调用_PG_init。这个函数...原创 2018-04-12 16:57:30 · 2672 阅读 · 0 评论 -
PostgreSQL编写记录删除表格信息的Extension扩展
摘要:因为作者水平有限,暂且只是测试Extension扩展用例, 一个典型的extension包含多个SQL对象。举个例子,如果我们创建一个新的数据类型(data type),那可能同时还需要与之相关的新函数(function)、新的操作符(operator)以及新的索引类型(index operator class)等,为了简化数据库管理,我们可以把这个新的数据类型以及所有与...原创 2018-04-12 16:00:42 · 5365 阅读 · 0 评论 -
postgresql扩展test--sql复制出现错误.
摘要:坑是要有的,也是必须要跳的,但跳下去的时候,要勇敢的再爬上来.首先确定一点Extension 中的Makefile错误是本文的根源.make install时 下面是错误的输出结果:me@me:~/Desktop/postgresql-10.1/contrib/test$ make installmake -C ../../src/interfaces/libpq allmake[1]:...原创 2018-04-12 12:17:02 · 269 阅读 · 0 评论 -
postgresql写单行函数时出现Wrong number of attributes in DATA() entry at ../../../src/include/catalog/pg_proc
1.oid设置重复.2.参数的缺少以及多余原创 2018-04-12 11:03:00 · 242 阅读 · 0 评论 -
PostgreSQL 加载动态库详解
转载:https://yq.aliyun.com/articles/8235摘要: PostgreSQL 支持通过动态库的方式扩展PG的功能,在调用动态库涉及的函数时会自动加载这些库。但是某些动态库可能需要预加载,例如使用了hook的动态库,或者是需要初始化共享内存,需要fork work process的动态库。举个例子:pg_stat_statements这个插件依赖的动态库.PostgreS...转载 2018-04-12 15:53:41 · 2068 阅读 · 0 评论 -
PostgreSQL 外部动态连接库魔法块的使用
装载:https://my.oschina.net/quanzl/blog/136907最常见的一种方式 CREATE FUNCTION c_overpaid(emp, integer) RETURNS boolean AS 'os_libpath', 'c_funcname' LANGUAGE C STRICT;文档中提到两种调用习惯 V0 和 V1,从代码里边看,V0已经不再支...转载 2018-04-09 14:51:44 · 887 阅读 · 0 评论 -
pg_tables,pg_indexes,pg_views,pg_user,pg_roles,pg_rules,pg_settings详解
一、pg_tables: 该视图提供了对有关数据库中每个表的有用信息地访问。名字类型引用描述schemanamenamepg_namespace.nspname包含表的模式名字。tablenamenamepg_class.relname表的名字。tableownernamepg_authid.rolname表的所有者的名字。tablespacenamepg_tablespace.spcnam...转载 2018-05-02 15:45:32 · 4218 阅读 · 0 评论 -
PostgreSQL date_trunc() 截断日期函数,完成定时时间语法.
摘要:Oracle有大量的日期函数可供使用,trunc, new_time,months_between,next_day,last_day,add_months,round等函数.当然PostgreSQl 也有大量的时间函数,详情请移步postgresql时间日期函数总结. 所以在此只说明Postgresql 中的TRUNC取断函数. 1.首先介绍一下Oracle的trunc函数: selec...原创 2018-05-02 16:24:22 · 101391 阅读 · 4 评论 -
PostgreSQL 扩展开发基础教程
转载:http://joshuais.me/postgresql-extension-develop/开发前的准备我们为这次开发的扩展命名为array_ext。我们希望这个扩展能够增强 PostgreSQL 处理数组的能力。搭建基础结构首先,我们必须为了安装扩展做一些准备。为了能够在 PostgreSQL 中使用CREATE EXTENSION命令加载扩展,我们的扩展需要两个必需的文件:exten...转载 2018-05-15 14:55:19 · 2188 阅读 · 0 评论 -
postgresql 编译源码时,在预编译configure中,添加配置选项
摘要:本文主要讲一讲,在Postgresql 源码中怎么为自动预编译脚本configure添加一个配置可选选项,找个最简单的例子说明。在src/include/storage/proc.h 头文件中PGXACT结构体中添加一个补齐结构体占用字节的数组。 1. 首先看张图,了解一下configure。configure它是个shell脚本,主要用于编译安装源代码库和软件。 ./conf...原创 2018-07-31 13:55:06 · 2324 阅读 · 0 评论 -
relation "pg_auth_members" already exists
1.出现这个原因是定义pg_auth_members 表格结构重复。 可能在 src/backend/catalog/Makefile POSTGRES_BKI_SRCS重复定义。# Note: there are some undocumented dependencies on the ordering in which# the catalog header files...原创 2018-07-17 15:32:50 · 3868 阅读 · 0 评论 -
postgresql内核语法解析器详解
转载:https://blog.csdn.net/postgres20/article/details/54709860概述前面博文中谈过parser语法解析模块,但没深入介绍,本文相对详细的介绍下。 当PostgreSQL的后台进程Postgres接收到查询语句后,首先将其传递给查询分析模块,进行词法、语法和语义分析。若是功能性命令(例如建表、创建用户、备份等)则将其分配到功能性命令处理模块;对...转载 2018-07-10 17:30:04 · 1161 阅读 · 0 评论 -
PostgreSQL和MySQL数据库的对比
特性MySQLPostgreSQL实例通过执行 MySQL 命令(mysqld)启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。通过执行 Postmaster 进程(pg_ctl)启动实例。一个实例可以管理一个或多个数据库,这些数据库组成一个集群。集群是磁盘上的一个区域,这个区域在安装时初始化并由一个目 录组...转载 2018-06-28 12:54:36 · 1399 阅读 · 0 评论 -
PostgreSQL创建oracle兼容函数(Orafce)
转载自德哥.PostgreSQL是和Oracle最接近的企业数据库,包括数据类型,功能,架构和语法等几个方面。甚至大多数的日常应用的性能也不会输给Oracle。但是Oracle有些函数或者包,默认PostgreSQL是没有的,需要安装orafce包来实现这些兼容性。例如现在orafce已经包含了如下内容。1. 类型 date, varchar2 and nvarchar22. 函数 c...转载 2018-06-25 15:13:16 · 2531 阅读 · 0 评论 -
PostgreSQL TOAST 技术解析
转载:https://cloud.tencent.com/developer/article/1004455TOAST是“The Oversized-Attribute Storage Technique”的缩写,主要用于存储一个大字段的值。要理解TOAST,我们要先理解页(BLOCK)的概念。在PG中,页是数据在文件存储中的基本单位,其大小是固定的且只能在编译期指定,之后无法修改,默认的大小为8...转载 2018-06-01 15:33:48 · 1307 阅读 · 0 评论 -
psql: symbol lookup error: ./psql: undefined symbol: PQsetErrorContextVisibility
原文stackoverflow:https://stackoverflow.com/questions/44393800/dyld-lazy-symbol-binding-failed-symbol-not-found-pqseterrorcontextvisibilityOn running$ psqlI get this errordyld: lazy symbol binding fail...原创 2018-06-12 13:19:40 · 6671 阅读 · 0 评论 -
PostgreSQL缓存
目录[-]pg_buffercachepgfincorepg_prewarmdstatLinux ftools使用pg_prewarm预加载关系/索引:pgfincore 输出: 怎样刷新在操作系统缓存中的关系/索引 ?使用pg_prewarm的range功能预加载随机块.缓存.... !!, 它很难在一篇文章中解释清楚。但是我会努力分享我从Heikki, Robert Haas, Bruce M...转载 2018-06-04 17:58:52 · 1217 阅读 · 0 评论 -
PostgreSQL 扩展Extension 简单小实例
摘要:PostgreSQL被设计为易于扩展.PostgreSQL引入了一种方式来安装contrib模块,称为扩展(extensions)。此方法适用于所有使用扩展规范构建的contrib模块,包括如下:扩展SQL文件( extension_name.sql )扩展控制文件 ( extension_name.control )扩展库文件(extension_name.so)1.首先进入源码中的con...原创 2018-04-09 14:35:16 · 4241 阅读 · 1 评论 -
PostgreSQL源码中的configure详解
摘要:以最新的pg10.2为例. configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'-- help'选项执行'configure'脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的.pg10#./configure --help`config...原创 2018-03-26 16:20:43 · 1371 阅读 · 0 评论 -
PostgreSQL 安装目录的结构
摘要: pg采用的是常见的C/S架构,服务器端叫做postgres(服务器端的主程序和进程都叫这个名字,启动pg之后在服务器上至少可以看到6个postgres进程,对应于pg的几个主要的模块,并且每增加一个客户端连接,服务器段就会增加一个postgres进程来和客户端交互),管理所有的数据文件、接受客户端的连接、执行客户端提交的操作。客户端则可以是JDBC/ODBC、psql命令行客户...原创 2018-03-15 13:42:01 · 9678 阅读 · 0 评论 -
用openssl 为PostgreSQL备份加密
转载:作者:PGSmith 地址:https://my.oschina.net/Suregogo/blog/648296摘要: 近期研究了一下为PostgreSQL备份加密的方法,这里是直接利用脚本、openssl进行加密,简单易行。本文加密方式是在利用pg_dump备份出文件后直接利用openssl进行文件加密。1、生产密钥: 利用各种参数进行建立公私密钥,这里利用输入参数作为密钥生成的...转载 2018-02-28 15:01:34 · 425 阅读 · 0 评论 -
对于PostgreSQL中Datum的解释
转载:作者:PGSmith 网址:https://my.oschina.net/Suregogo/blog/651401摘要: PG中系统函数大量引用Datum类型进行传参,而这个作为对数据库修改最为基础的一部分。这里简单做一下介绍。Datum类型是PG系统函数大量引用的类型,其定义为: typedef uintptr_t Datum;typedef unsigned long long ui...转载 2018-02-28 11:10:21 · 2577 阅读 · 0 评论 -
PostgreSQL 登录客户端psql信息显示
1.psql源码放在两个地方,一个是src/bin/psql 此文件下的代码为psql前端代码,一个是psql后段代码,放在src/backend.所有的c语言程序都包含有个main()函数,而包含main()函数的文件就是src/bin/psql目录下的startup.c文件. 重要的结构体:enum _actions /* 代表当前psql命令程序所处的状态 */{ ACT_NOTH...原创 2018-02-28 11:08:26 · 1226 阅读 · 0 评论 -
Postgresql 模式简析.
1.模式(schema)的定义:模式(schema)是数据库的一个概念,可以理解为数据库中一个命名空间或者目录(但不可以嵌套),不同的模式下可以有相同名字表、函数、视图等对象且互相不冲突.提出模式的概念是为了管理数据库里面的对象,只要有足够的权限,每个模式的对象可以互相调用.允许使用模式的三个主要原因:(1) 允许多个用户同时使用一个数据库系统彼此互相不收干扰.(2)把数据库对象放在不同的模式下,...原创 2018-02-08 15:50:31 · 1692 阅读 · 1 评论 -
PostgreSQL.10.2 Hash分区实现
基于Postgresql 10.2 版本, 实现简单的Hash分区 Postgresql 10 之前的版本,不支持 内建的直接分区,但是可以以继承表加触发器或者规则的方式实现简单分区的功能.随着Postgresql 10 版本的发行,源代码中实现了range和list 分区功能.在参考别人实现方法的同时,试着在新版本实现Hash分区.(持续更新中)思路先创建主表,再创建分区表,语...原创 2018-02-27 16:03:54 · 1026 阅读 · 0 评论 -
PostgreSQL 用户密码设置,更改,加锁,解锁. ALTER USER.
1.用户及密码的创建.me=# create user you with password 'password123';CREATE ROLEme=# \du 角色列表 角色名称 | 属性 | 成员属于 ----------+------------------...原创 2018-02-27 15:48:04 · 8924 阅读 · 0 评论 -
查询每一个执行SQL语句的时间(创建hash分区)
1.\timing 2.调出SQL执行时间计时参数原创 2018-02-13 10:41:15 · 330 阅读 · 0 评论 -
PostgreSQL 索引
摘要:索引是数据库中一种快速查询数据的方法.索引是提高数据库性能的常用途径。比起没有索引,使用索引可以让数据库服务器更快找到并获取特定行。但是索引同时也会增加数据库系统的日常管理负担,因此我们应该聪明地使用索引。1. 索引的功能2. 索引的分类以及对应的匹配操作符3. 索引的优势及缺点4.索引常用的语法索引的功能: 加快对表中的查询记录的查找与排序.索引的分类以及对应的匹配操作符: ...原创 2018-03-01 17:00:32 · 485 阅读 · 0 评论 -
pg_dump与pg_dumpall实际使用方法
摘要:感谢类总的总结,在这里转载一下.装载原文地址:https://blog.csdn.net/lk_db/article/details/77971587?locationNum=9&fps=1pg_dump仅导出数据库结构:pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1备份某个database,备份结果以自定义压缩格式输出:pg_dump ...转载 2018-03-23 11:32:50 · 11584 阅读 · 0 评论 -
psql出现WARNING: psql version 9.2, server version 2.0. Some psql features might not work.
原因是打开两个服务,关掉服务重启服务.me@me:/opt/HighGo/Develop/bin$ ./psql highgoPassword: psql (2.0.1, server 9.5.12)WARNING: psql version 9.2, server version 2.0. Some psql features might not work.-----------...原创 2018-04-08 17:24:46 · 1120 阅读 · 0 评论 -
postgressql扩展开发
扩展开发的基本组成转载:https://www.cnblogs.com/lujunfeng/p/6092608.htmldemo--1.0.sqldemo.cdemo.controlMakefiledemo.c当中包含了自定义函数的实现,纯C语言,目录下可包含多个.c文件。demo—1.0.sql对自定义函数的声明,在pg启动的时候会执行这个sql。demo.control这个应该是版本控制,以及...转载 2018-04-08 16:22:11 · 404 阅读 · 0 评论 -
PostgreSQL之 使用扩展Extension
摘要:转载自:https://blog.csdn.net/pg_hgdb/article/details/79490509 by 波罗PostgreSQL被设计为易于扩展。因此,加载到数据库中的扩展功能就可以像内置的特性一样运行。与源代码一起发布的contrib/ 目录包含一些扩展。扩展是独立开发的,比如PostGIS。甚至PostgreSQL复制解决方案也可以在外部开发。例如,Slony-I...转载 2018-04-08 15:56:43 · 2096 阅读 · 0 评论 -
CentOS编译postgresql源码,以及安装pg依赖包
首先,解压pg10压缩包:tar -zxvf pg10.tar.gzconfigure 安装(这里写了一个安装脚本shell,pg_con.sh ),执行pg_con.sh 详情请移步:https://blog.csdn.net/liguangxianbin/article/details/79699132一键安装所需软件包脚本:install.sh#!/bin/bas...原创 2018-03-21 18:28:00 · 1568 阅读 · 0 评论 -
德哥的PostgreSQL私房菜 - 史上最牛皮的PG资料合集
转载:https://yq.aliyun.com/articles/59251?spm=5176.100239.bloglist.95.5S5P9SPostgreSQL摘要: 看完并理解这些文章,相信你会和我一样爱上PostgreSQL,并成为PostgreSQL的布道者。 沉稳的外表无法掩饰PG炙热的内心 。 扩展阅读,用心感受PostgreSQL 内核扩展 《找对业务G点, 体验酸爽 - Po...转载 2018-04-08 14:26:54 · 2430 阅读 · 0 评论 -
PostgreSQL 备份恢复权限设置
安装dos2unix转化格式me@me:/opt/HighGo/Develop/bin$ ./createopenssl.sh highgobash: ./createopenssl.sh: /bin/bash^M: 解释器错误: 没有那个文件或目录me@me:/opt/HighGo/Develop/bin$ dos2unix createopenssl.sh dos2unix: 正在转换文...原创 2018-03-23 14:09:08 · 1826 阅读 · 0 评论 -
PostgreSQL安装时,出现 configure: error: library 'ssl' is required for OpenSSL
首先,在configure时,出现configure: error: library 'ssl' is required for OpenSSL.(ssl 库被openssl需要)而网上太多的是./configure: error: SSL modules require the OpenSSL library.(SSL需要openssl) ,与此error相反. 这个错误centos :yum...原创 2018-03-20 11:06:48 · 3643 阅读 · 0 评论 -
postgresql 初始化 initdb 出现No such file or directory
1.initdb出现 FATAL: could not open extension control file "/opt/HighGo/Develop/share/postgresql/extension/file_fdw.control": No such file or directory.如下图.me@me:/opt/HighGo/Develop/bin$ ./initdb -D ../...原创 2018-03-23 14:12:40 · 4644 阅读 · 0 评论