postgresql检查会话配置设置可用性

postgresql检查会话配置设置可用性,postgresql,function,Postgresql,Function,我有一个充满“洞”的传感器数据表,数据只有在超过指定阈值时才会保存 | time stamp | value1 | value2 | | 2012-01-01 | 1 | | | 2012-01-02 | | 2 | | 2012-01-05 | | | | 2012-01-20 | | | | 2012-03-01 | 3 | 1 | 我需要做跨行计算,但表格上的洞使它

我有一个充满“洞”的传感器数据表,数据只有在超过指定阈值时才会保存

| time stamp | value1 | value2 |
| 2012-01-01 | 1      |        |
| 2012-01-02 |        | 2      |
| 2012-01-05 |        |        |
| 2012-01-20 |        |        |
| 2012-03-01 | 3      | 1      |
我需要做跨行计算,但表格上的洞使它不切实际。我的解决方案是创建一个辅助函数来包装相关字段,并使用session参数作为持久变量。像这样的事情:

CREATE FUNCTION wrap_data( data1 numeric(3,1) ) 
... LANGUAGE plpgsql
IF data1 <> NULL THEN
    EXECUTE 'SET SESSION app.data1 = $1;' USING data1;
END IF;
RETURN current_setting('app.data1')::numeric(3,1)
...
否则,它将抱怨参数未被识别


我正在寻找一个像IfParameterExist()这样的函数,它允许我检查这个变量的存在,而不会在我的plpgsql函数中引发错误。

我对plpython和支持会话范围全局变量的plv8更为熟悉。但是我当前的环境不允许安装它们,所以plpgsql中有类似的东西吗?您可以使用
current\u设置('app.data',true)
并检查空值谢谢,这很有帮助。
SET SESSION app.data1 = 11.1;