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;
我是 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;