Monetdb 中的按位运算

Bitwise operations in Monetdb

我是 Monetdb 的新手。我主要使用 Postgresql,但想检查 Monetdb 性能。在 Postres 中,我有类型为 bit() 的列,其中填充了 0 和 1。然后我在该列上使用按位 AND 将每一行与所有其他行进行比较。 Monetdb 没有 bit() 类型,所以我使用了文本。关于如何在 monetdb 中进行按位 AND 的任何想法以及我应该为此使用哪种类型的列?我试过的查询:

select a.sentenecid, b.sentenecid, a.sentence AND b.sentence from test a, test b;

Monetdb 通过计算器模块支持整数数据类型的按位运算符,如文档所述here

因此,您只需将列声明为整数,并在 SQL 查询中使用按位运算符 &、|、^、<<、>>。

例如,使用 monetdb 版本 Jul2015-SP2 进行测试:

// bitwise AND. Result = 1
Select 1 & 3; 

// bitwise OR. Result = 3
Select 1 | 3;    

// bitwise XOR. Result = 2
Select 1 ^ 3;    

// Left bit shift. Result = 4
Select 2 << 1;    

// Right bit shift. Result = 1
Select 2 >> 1;