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;