原创 mysql函數ifnull在pg 9.6中的實現

概述 工作中遷移mysql至pg 9.6,遇到mysql中的ifnull函數在pg中沒有,pg中函數coalesce與ifnull功能相同,但函數名不同,需要修改應用。ifnull也在SQL標準中,pg此處不符合sql標準規範。本

原创 yacc學習筆記(二)算術表達式歧義性和優先級

一個含歧義性的表達式示例: expression: expression '+' expression { $$=$1+$3; } | expression '-' expression { $$=$1-$3; } |

原创 yacc學習筆記(四)帶符號表的計算器程序

符號表 上一篇的計算器程序中的變量名只支持單個字符(a-z), 很少有用戶滿意單字符變量名,所以現在要增加使用較長變量名的能力。這意味着需要一個符號表——一種用來跟蹤使用中的名字的結構。每次記法分析程序讀取輸入中的名字時,它都在符

原创 yacc學習筆記(五)支持數學函數的計算器程序

支持數學函數的計算器程序 爲計算器生成的另一個指令是添加用於平方根、指數和對數的數學函數。以如下方式處理輸入: s2=sqrt(2) s2=1.41421 二種實現方式: 方式一、 爲每個函數添加單獨的規則 例: 語法分析添加:

原创 yacc學習筆記(三)變量和有類型的標記

變量和有類型的標記 yacc不僅可以用%token定義標記,而且可以用 %type <type> token 爲標記指定類型,其中<type>需要是在%union中聲明的類型,token爲已由%token定義的標記名。 下面

原创 oracle 11g函數regexp_count遷移至postgre

概述 前段時間遷移oracle 11g數據至pg 9.6,應用用到了oracle函數regexp_count,在此分享在pg中實現此函數的方法 1.REGEXP_COUNT函數語法參考 REGEXP_COUNT (source_c

原创 PostgreSQL 9.6源碼解析之XLOG生成

一、WAL日誌概述 pg中wal子系統的存在是爲了故障恢復,它也被用於基於時間點的恢復、基於日誌搬遷的Hot-standby複製。以下想描述一點wal日誌的設計理念。 wal日誌的一個基本假設是日誌條目必須先於它所描述的數據變化頁

原创 KingbaseES V8適配mybatisPlus問題處理--——level關鍵字做字段名

KingbaseES V8適配mybatisPlus問題處理——kingbase庫關鍵字做表字段名問題概述示例程序示例表:mybatisPlus示例程序問題處理 問題概述 kingbase中關鍵字做表名、字段名時,在查詢語句中會優

原创 java過程語言插件-pl/java在postgresql9.6中的安裝及使用

pl/java簡介 pl/java是一個postgreSQL數據庫插件,與pl/sql、pl/perl、pl/python類似,安裝該插件之後,函數和觸發器可以用java語言實現然後加載進數據庫。pljava開發工作於2003年開

原创 flowable工作流組件在KingbaseES V8中的配置方法

flowable簡介 Flowable提供了一個組高效的核心開源業務流程引擎,爲開發人員,系統管理員和業務用戶提供工作流和業務流程管理(BPM)平臺。全部用Java編寫,並且基於Apache 2.0許可的開源,代碼在社區維護。 F

原创 Centos 7 maven 3.6.3安裝

一、下載maven 安裝包 wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz (not

原创 PostgreSQL 9.6源碼解析之XLOG生成(二)xlog文件內部結構

xlog段文件結構 數據目錄下的pg_xlog目錄(pg9.6上版本)下,產生wal日誌文件段(如000000010000000000000001),每一個wal段的page的構成如下圖。 頁頭 wal頁面有兩種頁頭結構,XLo

原创 lex學習筆記-工具安裝及基本語法

工具安裝: yum install byacc yum install flex lex規範的結構 lex程序由三部分組成:定義段、規則段和用戶子例程段 …定義段… %% …規則段… %% …用戶子例程段… 定義段內容 定義段包括

原创 yacc學習筆記(一)基礎語法

yacc的功能: sql解析中的語法分析工具,和flex配合使用。 yacc不能分析什麼: 1、不能處理歧義語法,在歧義語法中,同樣的輸入符合多個分析樹 2、不能處理需要向前看多於一個標記才能確定它是否已經匹配一條規則的語法。 y