PostgreSQL序列nextval()奇怪的行为

PostgreSQL序列nextval()奇怪的行为,postgresql,Postgresql,我在测试postgresql序列(与postgresql 9.3一起使用,我目前在本地没有postgresql设置),但我看到了奇怪的行为 创建一个序列 CREATE SEQUENCE counter_seq; ALTER SEQUENCE counter_seq RESTART 9223372036854775805; 然后从序列中选择下一个值: SELECT nextval('counter_seq'); 结果是9223372036854776000超出了BIGINT 序列本身似乎更新正

我在测试postgresql序列(与postgresql 9.3一起使用,我目前在本地没有postgresql设置),但我看到了奇怪的行为

创建一个序列

CREATE SEQUENCE counter_seq;
ALTER SEQUENCE counter_seq RESTART 9223372036854775805;
然后从序列中选择下一个值:

SELECT nextval('counter_seq');
结果是
9223372036854776000
超出了BIGINT

序列本身似乎更新正确(在进行两次选择后,它将失败,错误为:nextval:达到序列“计数器序列”(9223372036854775807))的最大值),但运行时,
nextval
的结果不正确

然后,我尝试将顺序设置为更低:

ALTER SEQUENCE counter_seq RESTART 5223372036854775805;
SELECT nextval('counter_seq');
但结果是:

5223372036854776000
我无法获得可靠的行为,直到我将序列值降至
5000000000000000


这是postgresql错误还是SQLFIDLE?

看起来可能是SQLFIDLE错误或pgsql 9.3问题。我在本地9.6上没有得到相同的结果,也没有给出这样的错误,没有在由gcc(gcc)4.8.3 20140911(Red Hat 4.8.3-9)编译的x86_64-redhat-linux-gnu上的
PostgreSQL 9.3.14上复制,64位
@ukaszKamiński看起来我将从现在开始使用rextester。它看起来像一个显示大量数字的sqlfiddle错误,我尝试了另一个例子:将9223372036854775805插入一个BIGINT字段,当你读回它时它是不正确的。其他会话不能同时滚动序列吗?。可能,但我用不同的序列名对SQLFIDLE进行了测试,它给出了相同的精确结果。因此,我认为可以安全地假设他们这边有东西坏了。counter_seq似乎太普通了——如果我没有弄错的话——用户在那里共享相同的模式,所以我认为人们只是在滚动你的序列。我使用了counter_seq_S052305; migdsgds,它也给出了错误的结果:是的——我刚刚回忆起共享模式是rexter,不要胡闹