⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdk_relop.c

📁 这个是内存数据库中的一个管理工具
💻 C
📖 第 1 页 / 共 5 页
字号:
	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	end = base + BATcount(r);	BATmmap_pin(r);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: defaultfetchjoin(chr,chr);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		if (yy < base || yy >= end) {			continue;		}		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tchrput(bn, BUNtloc(bn, dst));#line 604 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	BATmmap_unpin(r);	ret = bn;      goto bunins_failed;      bunins_failed:	BATmmap_unpin(r);	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}#line 620 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	#line 514 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"static BAT *densefetchjoin_chr_bte(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx;	int yy, zz;	BAT *ret = NULL;	zz = BUNsize(bn);	yy = BUNsize(r);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	r_cur = BUNptr(r, offset + *(oid *) BUNtail(l, BUNfirst(l)));	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: densefetchjoin(chr,bte);\n");	BATloopFast(l, l_cur, l_end, xx) {		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tbteput(bn, BUNtloc(bn, dst));#line 533 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		r_cur += yy;		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed: 	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *orderedfetchjoin_chr_bte(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx, yy;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: orderedfetchjoin(chr,bte);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tbteput(bn, BUNtloc(bn, dst));#line 566 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed:	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *defaultfetchjoin_chr_bte(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t xx, yy, base, end;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	end = base + BATcount(r);	BATmmap_pin(r);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: defaultfetchjoin(chr,bte);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		if (yy < base || yy >= end) {			continue;		}		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tbteput(bn, BUNtloc(bn, dst));#line 604 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	BATmmap_unpin(r);	ret = bn;      goto bunins_failed;      bunins_failed:	BATmmap_unpin(r);	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}#line 621 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	#line 514 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"static BAT *densefetchjoin_chr_sht(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx;	int yy, zz;	BAT *ret = NULL;	zz = BUNsize(bn);	yy = BUNsize(r);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	r_cur = BUNptr(r, offset + *(oid *) BUNtail(l, BUNfirst(l)));	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: densefetchjoin(chr,sht);\n");	BATloopFast(l, l_cur, l_end, xx) {		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tshtput(bn, BUNtloc(bn, dst));#line 533 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		r_cur += yy;		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed: 	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *orderedfetchjoin_chr_sht(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx, yy;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: orderedfetchjoin(chr,sht);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tshtput(bn, BUNtloc(bn, dst));#line 566 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed:	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *defaultfetchjoin_chr_sht(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t xx, yy, base, end;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	end = base + BATcount(r);	BATmmap_pin(r);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: defaultfetchjoin(chr,sht);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		if (yy < base || yy >= end) {			continue;		}		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tshtput(bn, BUNtloc(bn, dst));#line 604 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	BATmmap_unpin(r);	ret = bn;      goto bunins_failed;      bunins_failed:	BATmmap_unpin(r);	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}#line 622 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	#line 514 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"static BAT *densefetchjoin_chr_int(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx;	int yy, zz;	BAT *ret = NULL;	zz = BUNsize(bn);	yy = BUNsize(r);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	r_cur = BUNptr(r, offset + *(oid *) BUNtail(l, BUNfirst(l)));	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: densefetchjoin(chr,int);\n");	BATloopFast(l, l_cur, l_end, xx) {		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tintput(bn, BUNtloc(bn, dst));#line 533 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		r_cur += yy;		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed: 	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *orderedfetchjoin_chr_int(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx, yy;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: orderedfetchjoin(chr,int);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tintput(bn, BUNtloc(bn, dst));#line 566 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed:	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *defaultfetchjoin_chr_int(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t xx, yy, base, end;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	end = base + BATcount(r);	BATmmap_pin(r);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: defaultfetchjoin(chr,int);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		if (yy < base || yy >= end) {			continue;		}		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tintput(bn, BUNtloc(bn, dst));#line 604 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		dst += zz;	}	BATmmap_unpin(r);	ret = bn;      goto bunins_failed;      bunins_failed:	BATmmap_unpin(r);	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}#line 623 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	#line 514 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"static BAT *densefetchjoin_chr_lng(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx;	int yy, zz;	BAT *ret = NULL;	zz = BUNsize(bn);	yy = BUNsize(r);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	r_cur = BUNptr(r, offset + *(oid *) BUNtail(l, BUNfirst(l)));	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: densefetchjoin(chr,lng);\n");	BATloopFast(l, l_cur, l_end, xx) {		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));	Tlngput(bn, BUNtloc(bn, dst));#line 533 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"		r_cur += yy;		dst += zz;	}	ret = bn;      goto bunins_failed;      bunins_failed: 	bn->batBuns->free = dst - bn->batBuns->base;	BATsetcount(bn,bn->batBuns->free/zz);	if (!ret)		BBPreclaim(bn);	return ret;}static BAT *orderedfetchjoin_chr_lng(BAT *bn, BAT *l, BAT *r){	BUN l_cur, l_end, r_cur, dst;	ssize_t offset;	size_t base, xx, yy;	int zz;	BAT *ret = NULL;	zz = BUNsize(bn);	dst = BUNfirst(bn);	base = BUNindex(r, BUNfirst(r));	offset = (ssize_t) (base - r->hseqbase);	ALGODEBUG THRprintf(GDKout, "#BATfetchjoin: orderedfetchjoin(chr,lng);\n");	BATloopFast(l, l_cur, l_end, xx) {		yy = offset + *(oid *) BUNtail(l, l_cur);		r_cur = BUNptr(r, yy);		#line 510 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_relop.mx"	Hchrput(bn, BUNhloc(bn, dst));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -