Note:
如果执行如下步骤出错的话,可以把源代码tar.gz重新解压一下,然后再执行
./configure --prefix=/home/gaoxueyu/pgsql
make
然后在重新执行。
第一步:将pg源码中的每一条sql抽取成一个文件
1、下载pg9.5.14源码,编译安装
2、cd
/home/gaoxueyu/postgresql-9.5.14/contrib/file_fdw
执行make&&make
install
3、cd
/home/gaoxueyu/postgresql-9.5.14/src/test
执行make&&make
check
4、cd
/home/gaoxueyu/postgresql-9.5.14/src/test/regress/sql
执行mv numeric.sql
numeric_a.sql
5、将reg_sql.sh拷贝到/home/gaoxueyu/postgresql-9.5.14/src/test/regress/sql下,并修改SQLPATH如下:
修改reg_sql.sh的权限,chmod 777
reg_sql.sh
执行reg_sql.sh脚本,去掉oid不一致的错误
6、将postgresql-9.5.14/src/test/regress/sql
下的.sql文件拷贝到extract_sql/sql_input目录。
cp
/home/gaoxueyu/postgresql-9.5.14/src/test/regress/sql/*.sql
/home/gaoxueyu/tools/extract_sql/sql_input
7、在extract_sql目录下新建conf目录
将源码中的/home/gaoxueyu/postgresql-9.5.14/src/test/regress/serial_schedule文件cp到conf目录下,并做以下修改:
test: numeric为test:
numeric_a
8、修改extract_sql.sh脚本的相关内容,然后运行该脚本
第二步:将抽取后的源码sql放到postgres数据库下执行
1、将第一步得到的sql_expected复制到build_out目录的sql中
2、修改build_out_id3.sh脚本中的相关内容,并执行该脚本。
#!/bin/bash
#数据库环境变量
export PGHOME=/home/gaoxueyu/pgsql
export PGDATA=$PGHOME/data
export PATH=$PATH:$PGHOME/bin
export LD_LIRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib
export PGHOST=localhost
export PGPORT=5432
export PGUSER=gaoxueyu
export PGDATABASE=postgres
#生成结果目录环境变量
export BUILD_DIR=/home/gaoxueyu/tools/build_out
export SQL_DIR=$BUILD_DIR/sql
export OUT_DIR=$BUILD_DIR/out
export LOG_DIR=$BUILD_DIR/log
export TMP_DIR=$BUILD_DIR/temp
第三步:将抽取后的源码sql放到瀚高数据库下执行,并将hgdb得到的结果与pg得到的结果进行比较
0、在log目录底下mkdir如下文件夹
different filerror other pass results
去掉
tesh.sh的如下注释(如果不想跑这么多加密,可以注释掉)
这是7种加密方式,跑FDE加密的话,需要配置LDAP服务器,证书已经生成,就是cacert.pem
1、在test_sql目录下新建data目录,将pg9.5.14源码中的../scr/test/regress/data目录下的文件复制到test_sql/data目录下
2、在test_sql目录下新建results目录,将pg9.5.14源码中的../scr/test/regress/results目录下的onek.data、stud_emp.data文件复制到test_sql/results目录下
3、将pg9.5.14源码中的../scr/test/regress目录下的文件autoinc.so、refint.so、regress.so文件复制到test_sql目录下
4、将build_out中的sql目录及out目录复制到test_sql目录下,并将out目录重命名为expected目录
4-、在执行脚本之前,需要先配置LDAP。
5、修改test_sql/scripts/test.sh脚本中的相关内容,并执行该脚本
#把pg提取的sql带有路径的内容替换成hgdb的路径
pgpath='/home/gaoxueyu/postgresql-9.5.14/src/test/regress'
修改env.sh脚本:
#!/bin/bash
#HGDB
export PGHOME=/home/gaoxueyu/hgdb
export PATH=$PATH:$PGHOME/bin
export PGDATA=$PGHOME/data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib
export PGHOST=localhost
export PGPORT=5866
export PGUSER=gaoxueyu
export PGDATABASE=highgo