编译支持llvm的PostgreSQL v11b3

PG的编译一如既往的简单,llvm因为不熟悉稍微绕了点弯路。

1、OS:Redhat 7.4 最小安装

2、安装所需软件包

gcc、gcc-c++、nasm、make

3、cmake

官网下载,不要使用OS自带的,版本过低llvm不支持,下载一个binary版解压后设置PATH即可。

4、其他

例如 readline、zlib 等等,自行处理

5、编译llvm(当前版本6.0.1)

下载LLVM CLang源代码包(没有使用其他可选件)

首先解压LLVM至某个目录 $llvm-src,然后将CLang源代码解压至 $llvm-src/tools/并将其目录名改为clang

在自行选定的编译位置 mkdir build && cd build

然后 cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release $llvm-src

随后就是简单的 make && make install

这里如果不指定 Release,默认会以Debug方式编译,对生产环境来说是不必要的。

编译过程很长,耐心等待,可以给make加 -j参数

6、使用 --with-llvm 参数运行 configure 并且编译安装PG

7、测试一下,使用官方文档的例子

flying=# SET jit_above_cost = 10;
SET
flying=# EXPLAIN ANALYZE SELECT SUM(relpages) FROM pg_class;
                                                 QUERY PLAN                                                  
-------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=16.27..16.29 rows=1 width=8) (actual time=16.175..16.178 rows=1 loops=1)
   ->  Seq Scan on pg_class  (cost=0.00..15.42 rows=342 width=4) (actual time=0.024..0.179 rows=342 loops=1)
 Planning Time: 0.924 ms
 JIT:
   Functions: 3
   Generation Time: 1.448 ms
   Inlining: false
   Inlining Time: 0.000 ms
   Optimization: false
   Optimization Time: 0.928 ms
   Emission Time: 14.639 ms
 Execution Time: 39.454 ms
(12 rows)

flying=# 

 

飞象数据
权叔与你同在

转载于:https://my.oschina.net/quanzl/blog/1931855

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值