2016-07-27 63 views
0

我們正在爲不支持array_length函數的此項目運行較舊版本的Postgres。我沒有辦法更新版本(不是DBA),任何人都可以向我展示源代碼或告訴我如何/在哪裏可以看到它自己?Postgres中array_length函數的函數源代碼是什麼?

編輯:對不起,我們使用的版本8.2.15

+0

你有什麼postgres版本?也許是你僱用dba的時候,或者開始學習一些db的東西。更新postgre到新版本並不難,你將獲得許多新的功能。 –

+1

內置'array_length'函數不會寫入SQL中。 PostgreSQL源代碼位於:https://www.postgresql.org/ftp/source/。 – Nicarus

+1

我們使用8.2.15版本,問題不在於它是一個不知道自己在做什麼的小團隊,問題是該項目太大,而且我的一部分太小而無法完成單方面的變化就可以讓我的工作變得更輕鬆(我認爲項目中有100多人)。我也沒有影響_dll's _anything_ – Ridiculon

回答

1

功能的原始代碼是在C。我不認爲你想用它。

你可以試試這個(當然,我無法在你的版本中測試它)。

create function my_array_length(anyarray, int) 
returns int language sql as $$ 
    select array_upper($1, $2)- array_lower($1, $2)+ 1 
$$; 
+0

謝謝!我認爲這應該工作,8.2支持array_upper和array_lower,雖然現在我覺得我應該想到這一點,它很簡單。我會測試它並回復你。 – Ridiculon

相關問題