- 博客(48)
- 资源 (3)
- 收藏
- 关注

原创 postgresql 查看当前用户名
查看当前连接的用户名: select * from current_user select user
2017-09-13 11:55:39
23182
1

原创 vmware虚拟机实现双网卡固定ip
vmware 可以添加两个网卡 一个网卡连接外网:使用NAT 一个网卡用于内网连接,使用主机模式 如何添加两个网卡 1. 2. 3. 虚拟机内部设置 假定条件:你内部网卡配置是正确的 进入网卡设置文件夹/etc/sysconfig/network-scriptscp ifcfg-eth0 ifcfg-eth2
2016-11-11 11:54:44
32980
1
翻译 整型转换规则及注意事项
不合法操作下面的例子中介绍,当使用比int小的类型上使用位操作符时,容易出现的问题。这个例子中,代码的本意是先对port取反,然后向右移动四位。如果这两个操作符都作用在8字节的unsigned integer上时,最终的结果将会是0x0a,但是,操作过程中,port首先会升级为signed int类型,然后可能会产生下面图表中的结果。uint8_t port = 0x5a;uint8_t ...
2019-05-08 15:15:31
2267
翻译 内存溢出之sprintf
sprintf在下面的代码例子中,name可能来自用户输入,文件系统或者网络。程序从字符串构造文件名,为打开文件做准备#include <stdio.h> void func(const char *name) { char filename[128]; sprintf(filename, "%s.txt", name);}因为sprinf函数不保证输入字符...
2019-05-07 18:12:23
3051
翻译 Buffer Overflow之argv
在linux 编程中,我们会遇到这种情况:int main(int argc, char *argv[]) { /* ... */ }参数从命令行中读取到程序的内存中,程序启动的时候调用main函数,命令行保存在argv[0]~argv[argc-1]中,按照惯例,argv[0]表示程序的名称,从argv[1]开始到argv[argc-1]表示程序的参数。因为argv的参数的大小我们无法控制...
2019-05-07 17:43:36
298
原创 Cannot retrieve metalink for repository: epel
Cannot retrieve metalink for repository: epel**我在CentOS中执行`yum grouplist`中遇到了这样的问题:第一种解决方法第二种解决方法我在CentOS中执行yum grouplist中遇到了这样的问题: Error: Cannot retrieve metalink for repository: epel.# yum group...
2019-04-16 16:07:29
430
原创 SearchCatCache
SearchCatCache简介:这个函数查找一个系统缓存来查找一个tuple,如果第一次查找cache的时候,打开对应的表建立一个缓存。 如果没有找到该tuple就会返回一个NULL。如果找到就返回一个指向cache中tuple的指针。 查找键应该作一个Datum类型传入,可以根据提供的宏进行转换如(ObjectIdGetDatum)没有使用的传递0。流程:首先确认该函数必须在一个事务...
2019-01-22 11:10:07
342
原创 PostgreSQL extension 参数
PostgreSQL 是一个高可高扩展的数据库,它提供了一种功能就是把相关的SQL 对象集合成一个包,这个包,在PostgreSQL中被称为一个扩展(extension),为了定义这个扩展(extension),你必须至少需要一个可以创建扩展对象SQL脚本文件,以及一个指定扩展属性控制文件,如果你的扩展(extension)中包含了C语言,你可能还需要一个动态库文件。一旦你具有了这些文件,你就可以利
2017-11-01 20:59:58
1903
原创 SQL基础之数据查询
数据查询是指的将数据库中存储的数据根据用户的需求检索出来。SELECT [ALL | DISTINECT] <列表达式>[,....n]FROM <表名 | 视图名>[WHERE <查询条件表达式>[GROUP BY <列名> [HAVING <条件表达式>][ORDER BY <列名> [ASC | DESC]]; 语义: 根据WHERE 字句的查询表达式,从FROM 字句所制定
2017-10-27 11:46:38
409
原创 makeDefElem函数笔记
makeDefElem("createdb", (Node *)makeInteger(TRUE));创建一个DefElem节点,节点中的defname为createdb,节点的中的arg指向T_Integer的节点。其他的参数defnamespace为NULL,defaction为DEFELEM_UNSPEC。备注: 性子急得同学看看上面就行了makeInteger为创建一个节点,type 为T_
2017-10-26 17:13:16
438
原创 linux 磁盘调度、磁盘类型、top以及iostat 参数笔记
该文章非原创内容摘自不同博客,仅作个人笔记用,博客地址见引用部分利用rotational 查看磁盘类型以及调度方式 前两行查看磁盘调度方式: 当前方式为cfg,调度方式见底部引用最后一行查看磁盘类型: 返回值0即为SSD, 返回1即为HDD。利用iostat查看磁盘利用率rrqm/s:每秒合并读操作的次数,针对相邻的数据块wrqm/s:每秒合并写操作的次数,同上。
2017-10-10 16:11:50
1242
原创 postgresql删除主键
ALTER TABLE tablename DROP CONSTRAINT primaryname。talbename:表示表名 primaryname:表示主键名例子:postgres=# \d c_tab; Table "public.c_tab" Column | Type | Modifiers
2017-10-09 11:08:26
22541
3
原创 postgresql 设置block_size大小
configure的时候增加配置参数 --with-blocksize=32需要的时候将32替换成你需要的值。8或者16
2017-09-27 17:25:17
5086
原创 VARATT_EXTERNAL_GET_POINTER
前言: 在pg存储中有一种格式就是扩展格式,或者成为线外存储,本张解释的宏就是其中的一个。 翻译#define VARATT_EXTERNAL_GET_POINTER(toast_pointer, attr) \do { \ varattrib_1b_e *attre = (varattrib_1b_e *) (attr); \ Assert(VARATT_IS_EXTERNA
2017-03-24 16:15:46
626
原创 errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccJmra7
现象原因解决方案现象在编写strerror输出错误信息的时候有时候会遇到一下或者类似的情况errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccJmra71.o原因可能是因为你复制的网上的代码,或者使用了以下代码extern int errno;解决方案将上面代
2017-03-22 14:19:56
4250
翻译 ScanKeyData
ScanKeyData翻译原版ScanKeyData翻译 ScanKey描述了表或者索引以及常量之间比较操作的应用。 当它是ScanKeys的一部分时,它默认为AND。如果是一个二进制操作时,索引列为左操作数 (数据结构也可以支持一元索引操作符,在这种情况下,sk_argument会被省略,但是它现在没有被实现) 对于一个索引扫描来说,sk_strategy和sk_subtype
2017-03-21 18:24:33
1006
原创 PortalSetResultFormat
* PortalSetResultFormat * Select the format codes for a portal's output.
2017-03-21 16:25:52
440
原创 求最右边的第一个1的数组
求一个字节(8位)表示的数字中查找最右边第一个非0的数字的位置,该数组如何解析呢?static const uint8 rightmost_one_pos[256] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0,
2017-03-03 09:24:48
457
翻译 postgresql Tuple之t_ctid
翻译当一个tuple保存到硬盘的时候,它的t_ctid被初始化为它的TID(位置信息),如果tuple被更新过,则t_ctid被改变为最新的tuple 替换版本。因此,如果XMAX无效时或者t_ctid指向它自己(如果XMAX有效,此时,tuple要么是被锁定的,要么是被删除的),tuple表示此行的最新版本。这种情况下我们可以追随t_ctid找到此行最新的版本。小心,VACUUM可能会再擦除c_t
2017-02-13 15:57:23
1264
原创 位移实现取下整
在postgresql中有如下定义:(引用于postgresql内核) 表示对ALIGNVAL取整,ALIGNVAL为2的幂。#define TYPEALIGN_DOWN(ALIGNVAL,LEN) \ (((uintptr_t) (LEN)) & ~((uintptr_t) ((ALIGNVAL) - 1)))ALIGNVAL为2的幂,2,4,8等。 本文以4为例子做解释:看宏:
2017-02-13 12:17:24
490
原创 get_hash_entry
函数意思是返回一个HASHELEMENT指针,HASHBUCKET是一个Element指针的宏定义。首先判断现有的freelist中是否有可用的Element,如果有,进入4,否则进入2如果现有的freelist中没有,就试图扩展freelist,如果无法扩展就进入3循环查找现有的freelist(32取模),如果找到了就返回该Element,如果找不到就返回NULL如果有可用的就找到并返回
2017-01-17 17:29:50
446
原创 eclipse边框无法拖动
在使用eclipse时,有时候会遇到这种情况: 鼠标移动到边框,鼠标箭头变成了双向箭头,但是,按住左键却无法拖动。 答案: 你双击以后再拖动试试
2017-01-13 14:45:53
1400
原创 位移实现取模运算
在程序中遇到一个取模运算,列出来让大家共享。 取模的前提是取模值必须为2的幂。文章以取8的模为例:ATT表示任意非负两个字节整形(ATT) & 0x07)经过上面的运算就取得了最后3个字节X X X X X X X X0 0 0 0 0 1 1 1---------------0 0 0 0 0 X X X对于负数,笔者没有做过多的计算,可能存在失误,读者可以自己运算一下。
2017-01-12 14:26:56
3997
1
原创 eclipse CDT无法找到函数引用等
在使用eclipse 编译c、c++程序时,可能会遇到类似与下面的问题。这是因为index没有更新或者果真没有此函数等原因造成。 解决index没更新的办法是重建,重建是要花费很长时间的,所以,我们选择更改某一条代码后就更新一下index。 方法: 1.鼠标右键工程,选择index后就会弹出下面的选项 2.你可以选择重建或者只更新修改的部分(建议选择,因为速度快)这样基本就可以解决问题了
2017-01-11 18:47:50
3345
原创 白话字符编码和字符集
下面解释是使用白话解释。专业属于请参考其他文档 字符 字符代表的是一个字,如:一个英文’A’或者中文’王’ 字符集 字符集表示字符的集合,表示这个集合可以包含的字符的范围。 如:ascii 无法保存汉字,因为它范围不够。 字符编码 字符集的计算机表示形式,表示这个字符集合如何在计算机中表示。 如:一些编码设置2个字节代表一个字符,有些是用1个字节表示一个字符。字符编码指定了你用几个字
2016-11-23 11:11:51
535
原创 directory "*" exists but is not empty
pg_basebackup directory "/home/Thornger" exists but is not empty
2016-11-08 11:40:09
4519
原创 /contrib/contrib-global.mk: No such file or directory
postgresql 安装插件时提示找不到~global.mk当postgresql 安装插件时,遇到了/contrib/contrib-global.mk:打开MakeFileifdef USE_PGXSPG_CONFIG = pg_configPGXS := $(shell $(PG_CONFIG) --pgxs)include $(PGXS)elsesubdir = contrib/
2016-11-07 22:03:29
3342
原创 BackgroundWriterMain代码
基础流程:BackgroundWriterMainBgBuffferSync->SyncOneBuffer-> FlushBuffer()-> smgrwrite()代码解析部分 sigjmp_buf local_sigjmp_buf; //解析:定义错误恢复变量,保存错误后信号 MemoryContext bgwriter_context; //解析:定义内
2016-09-08 19:27:33
976
原创 C语言中位移问题
声明: 本文非原创,转自其他人博客,有个错字,进行修复一下,本人特别讨厌各种复制粘贴,本篇文章只作为自己参考使用,如有侵权,请原作联系本人。博客链接逻辑位移与算数位移 http://www.cnblogs.com/hnrainll/archive/2011/07/06/2099068.html正文 在C语言中,涉及位移的运算符有2个,>>表示右移,<<则表示左移。 而汇编指令中,SHL
2016-07-22 14:41:31
1255
原创 postgresql 时间函数j2day
结构体类型text VarChar BpChar BpChartypedef struct varlena BpChar;typedef struct varlena text;typedef struct varlena BpChar; /* blank-padded char, ie SQL char(n) */typedef struct varlena VarChar; /*
2016-07-19 18:24:03
458
原创 结构体强转联合体笔记
结构体强制转换为联合体笔记 测试代码1int main(){ //首先创建一个联合体,联合体内有两个结构体 typedef union { struct { unsigned int i_ia = 0; char buffer[32] = "a"; } va_4byte;
2016-07-11 17:39:02
914
原创 oracle sqlplus 方向键不能用
安装完oracle后,发现方向键不能用。 当点击方向键时出现一些乱码网上的解决方案是安装rlwrap 确实好用 不过需要在网上下载包,然后编译安装 在下载之前你可以试下search命令yum search rlwrap=====N/SMatched:rlwrap====== rlwrap.x86_64 : Wr
2016-07-05 13:54:47
1179
原创 批量修改postgresql索引大小写
背景:由于项目迁移自别的数据库,索引都带引号,并且大小写区分,迁移到pg中想去掉引号不区分大小写(全是废话,见代码)create or replace function changetolower() returns voidAS$$DECLARE cursse refcursor;iname char(64);iname2 char(64);beginopen cursse for
2016-07-02 11:29:46
1005
原创 sybase安装过程Accessing a corrupted shared library
sybase安装过程中遇到一些问题 当运行./setup.bin时出现错误: ./setup.bin: line 2506: /tmp/install.dir.5624/Linux/resource/jre/bin/java: Accessing a corrupted shared library 网上查到一些资料说是 This error occurs because the ins
2016-06-15 13:05:45
1506
原创 eclipse出现Symbol could not be resolved解决方案
eclipse出现Symbol ‘NULL’ could not be resolved 借鉴老外解决方案:顺便吐槽一下百度垃圾:Here are the details if anybody else has this problem:I could not clear the settings from the Entries tab, but your suggestion got me
2016-04-12 11:36:21
8135
1
原创 PG主从流复制WAL被覆盖解决方式
PostgreSQL的流复制的原理是通过传递主机(master)上的wal日志信息到备机(slave)然后恢复,这中间就有一个潜在的问题,如果主机端比较忙,wal日志被覆盖了,而从机可能因为网络或者其他原因没有接收到该日志,就会造成主从不一致requested WAL segment 0000000100000001000000A has already been removed方式1:archiv
2016-03-14 16:34:02
3807
1
postgis GP6.0可用代码
2019-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人