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

📄 radix.mal

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 MAL
字号:
#line 601 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/radix.mx"module radix;pattern radix_cluster( b:bat[:any_1,:any_2], limits:str, perc:flt, radix1:int ... ):bat[:any_1,:any_2]address M5_RDX_radix_clustercomment"do N radix-cluster steps creating (radix1 * radix2 * ... * radixN) clusters. First pass uses the last radix parameter, and so on backwards. Partial radix cluster (i.e. skipping lower significant bits) can be indicated by passing a negative number of bits as first parameter. If you pass an appendable, empty, limits bat, a radix_count2 result with the resulting cluster boundaries is returned in it. Note that you pass a batname of b, as returned by b.bbpname(). If you pass a non-empty limits bat, it is used for resuming the clustering. The operation assumes that all significant highermost bits are already clustered, and limits contains the cluster sizes. If you pass a non-empty but writable limits bat, it will be used as above for resume, and will also be overwritten with the new cluster boundaries";pattern radix_cluster( b:bat[:any_1,:any_2], perc:flt, radix1:int ... ):bat[:any_1,:any_2]address M5_RDX_radix_cluster_lcomment"shortcut for:  radix_cluster( b, limits=\"tmp_0\", perc, radix1, ... );";pattern radix_cluster( b:bat[:any_1,:any_2], limits:str, radix1:int ... ):bat[:any_1,:any_2]address M5_RDX_radix_cluster_pcomment"shortcut for:  radix_cluster( b, limits, perc=1.0, radix1, ... );";pattern radix_cluster( b:bat[:any_1,:any_2], radix1:int ... ):bat[:any_1,:any_2]address M5_RDX_radix_cluster_lpcomment"shortcut for:  radix_cluster( b, limits=\"tmp_0\", perc=1.0, radix1, ... );";command radix_cluster2( b:bat[:any_1,:any_2], p:int, r:int, i:int ):bat[:any_1,:any_2]address M5_RDX_radix_cluster2comment"(Partially) radix-cluster b in p (<=4) passes on r in total (r/p bits per pass), ignoring the lower i bits.";command radix_bits( b:bat[:any_1,:any_2] ):intaddress M5_RDX_radix_bitscomment"return the number of bits on which the head column is radix clustered.";command radix_count( b:bat[:oid,:oid], shift:int, radix:int ):bat[:int,:int]address M5_RDX_radix_countcomment"return a histogram [radix-pattern,bucket-size] for the tail values of some BAT b. the first int holds the number of radix bits, the second how many lower bits to ignore. notice that the bat b maybe partially radix-clustered (or not at all). the radix_count command just detects consecutive chunks where (1) the tail values have the same specified radix-bits and (2) the head values are ascending";command radix_count2( b:bat[:any_1,:oid], shift:int, radix:int ):bat[:int,:int]address M5_RDX_radix_count2comment"generates a bat with in head the dense ascending sequence 0..((1 << radix) - 1), and in tailthe count of all tail value in b with these radix bits, ignoring the lowmost ones passed in shift";command radix_decluster( b:bat[:oid,:any_1], radix_cnt:bat[:int,:int], multiplier:int ):bat[:void,:any_1]address M5_RDX_radix_declustercomment"merge a (partially) radix-clustered dense collection of oids back to their original void position.  second bat *must* be result of b.radix_count(x,y). Third parameter is a multiplier that tells how many times the number of chunks the matching-window-size should be.";command radix_decluster( b:bat[:oid,:any_1], radix_cnt:bat[:int,:int] ):bat[:void,:any_1]address M5_RDX_radix_decluster_mcomment"shortcut for:  radix_decluster( b, radix_cnt, multiplier=4 );";command radix_decluster2( b:bat[:any_2,:oid], a:bat[:any_2,:any_1], radix_cnt:bat[:int,:int], multiplier:int ):bat[:void,:any_1]address M5_RDX_radix_decluster2comment"";command radix_decluster3( b:bat[:any_2,:oid], a:bat[:any_2,:any_1], radix_cnt:bat[:int,:int], multiplier:int ):bat[:void,:any_1]address M5_RDX_radix_decluster3comment"";command radix_decluster4( b:bat[:any_2,:oid], a:bat[:any_2,:any_1], radix_cnt:bat[:int,:int], multiplier:int ):bat[:void,:any_1]address M5_RDX_radix_decluster4comment"";command radix_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], radix:int, hitrate:int ):bat[:any_1,:any_3]address M5_RDX_radix_joincomment"nested-loop join on radix clustered inputs";command radix_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], radix:int ):bat[:any_1,:any_3]address M5_RDX_radix_join_hcomment"shortcut for:  radix_join( l, r, radix, hitrate=1 );";command radix_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3] ):bat[:any_1,:any_3]address M5_RDX_radix_join_xhcomment"shortcut for:  radix_join( l, r, radix=min(radix_bits(reverse(l)), radix_bits(r)), hitrate=1 );";command phash_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], radix:int, hitrate:int, cutoff:bit ):bat[:any_1,:any_3]address M5_RDX_phash_joincomment"partitioned hash-join on radix clustered inputs";command phash_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], radix:int, hitrate:int ):bat[:any_1,:any_3]address M5_RDX_phash_join_ccomment"shortcut for:  phash_join( l, r, radix, hitrate, cutoff=key(r) );";command phash_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], radix:int, cutoff:bit ):bat[:any_1,:any_3]address M5_RDX_phash_join_hcomment"shortcut for:  phash_join( l, r, radix, hitrate=1, cutoff );";command phash_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], radix:int ):bat[:any_1,:any_3]address M5_RDX_phash_join_hccomment"shortcut for:  phash_join( l, r, radix, hitrate=1, cutoff=key(r) );";command phash_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3], cutoff:bit ):bat[:any_1,:any_3]address M5_RDX_phash_join_xhcomment"shortcut for:  phash_join( l, r, radix=min(radix_bits(reverse(l)), radix_bits(r)), hitrate=1, cutoff );";command phash_join( l:bat[:any_1,:any_2], r:bat[:any_2,:any_3] ):bat[:any_1,:any_3]address M5_RDX_phash_join_xhccomment"shortcut for:  phash_join( l, r, radix=min(radix_bits(reverse(l)), radix_bits(r)), hitrate=1, cutoff=key(r) );";command jivejoin0( proj:bat[:oid,:oid], attr:bat[:void,:any_1], cnt:bat[:int,:int], shift:int, radix:int ):bat[:void,:any_1]address M5_RDX_jivejoin0comment"positional join with built-in NSM projection, and implicit 1-pass perfect knowledge radix-cluster on output according to proj head";command jivejoin1( preallocated:bat[:void,:oid], proj:bat[:oid,:oid], attr:bat[:void,:any_1], cnt:bat[:int,:int], shift:int, radix:int ):bat[:void,:any_1]address M5_RDX_jivejoin1comment"positional join with built-in NSM projection, and implicit 1-pass perfect knowledge radix-cluster on output according to proj head";command jivejoin2( proj:bat[:oid,:oid], attr:bat[:void,:any_1] ):bat[:void,:any_1]address M5_RDX_jivejoin2comment"positional join that creates a void head by inserting the join result positionally";command posjoin( c:bat[:void,:oid], v:bat[:void,:any_1], radix_bits:int, stride:int, vector_size:int ):bat[:void,:any_1]address M5_RDX_posjoin_clusteredcomment"perform a positional join that exploits radix-clusteredness for prefetching";command posjoin( c:bat[:void,:oid], v:bat[:void,:any_1], radix_bits:int, stride:int ):bat[:void,:any_1]address M5_RDX_posjoin_clustered_vcomment"shortcut for:  posjoin( c, v, radix_bits, stride, vector_size=512 );";command posjoin( c:bat[:void,:oid], v:bat[:void,:any_1], radix_bits:int ):bat[:void,:any_1]address M5_RDX_posjoin_clustered_svcomment"shortcut for:  posjoin( c, v, radix_bits, stride=128, vector_size=512 );";command cache_join( l:bat[:void,:oid], r:bat[:void,:any_1], cache_size:int, cache_line_size:int ):bat[:oid,:any_1]address M5_RDX_cache_joincomment"cache-conscious positional (\"fetch-\") join with given cache_size & cache_line_size";command cache_join( l:bat[:void,:oid], r:bat[:void,:any_1] ):bat[:oid,:any_1]address M5_RDX_cache_join_256k_32comment"shortcut for:  cache_join( l, r, cache_size=256*1024, cache_line_size=32 );";command uniform( base:oid, size:int, domain:int ):bat[:oid,:int]address M5_RDX_BATuniformcomment"create a random bat of certain size, head values starting from base, unique, dense and ordered, tail values perfect uniform from a certain domain ((domain >= size)  =>  unique tails).";command uniform( size:int, domain:int ):bat[:oid,:int]address M5_RDX_BATuniform_bcomment"shortcut for:  uniform( base=0@0, size, domain);";command uniform( size:int ):bat[:oid,:int]address M5_RDX_BATuniform_bdcomment"shortcut for:  uniform( base=0@0, size, domain=size);";command normal( base:oid, size:int, domain:int, stddev:int, mean:int ):bat[:oid,:int]address M5_RDX_BATnormalcomment"create a random bat of certain size, head values starting from base, unique, dense and ordered, tail values from a normal distribution between [0..domain] with given stddev & mean.";command normal( size:int, domain:int, stddev:int, mean:int ):bat[:oid,:int]address M5_RDX_BATnormal_bcomment"shortcut for:  normal( base=0@0, size, domain, stddev, mean);";command normal( base:oid, size:int, domain:int, stddev:int ):bat[:oid,:int]address M5_RDX_BATnormal_mcomment"shortcut for:  normal( base, size, domain, stddev, mean=domain/2);";command normal( size:int, domain:int, stddev:int ):bat[:oid,:int]address M5_RDX_BATnormal_bmcomment"shortcut for:  normal( base=0@0, size, domain, stddev, mean=domain/2);";command normal( base:oid, size:int, domain:int ):bat[:oid,:int]address M5_RDX_BATnormal_vmcomment"shortcut for:  normal( base, size, domain, stddev=domain/10, mean=domain/2);";command normal( size:int, domain:int ):bat[:oid,:int]address M5_RDX_BATnormal_bvmcomment"shortcut for:  normal( base=0@0, size, domain, stddev=domain/10, mean=domain/2);";command normal( base:oid, size:int ):bat[:oid,:int]address M5_RDX_BATnormal_dvmcomment"shortcut for:  normal( base, size, domain=size, stddev=domain/10, mean=domain/2);";command normal( size:int ):bat[:oid,:int]address M5_RDX_BATnormal_bdvmcomment"shortcut for:  normal( base=0@0, size, domain=size, stddev=domain/10, mean=domain/2);";#line 1073 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/radix.mx"#line 1313 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/radix.mx"

⌨️ 快捷键说明

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