1
我有一個PL/pgSQL函數callbackfunc
。如果我用按位結果運行它並在我的應用程序中解壓結果,我得到了65/0/65/65
(即1090535745
)。如果我直接返回按位運算的結果(1094795585
)並將其解壓縮,我得到了65/65/65/65
。爲什麼?下面PL/pgSQL函數返回不正確的位結果
CREATE OR REPLACE FUNCTION callbackfunc(value double precision[][][], pos integer[][], VARIADIC userargs text[])
RETURNS double precision
AS $$
DECLARE
var_result double precision;
BEGIN
var_result := (65 << 24 | 65 << 16 | 65 << 8 | 65 << 0);
--var_result := 1094795585;
RETURN var_result;
END;
$$ LANGUAGE 'plpgsql' IMMUTABLE;