2016-08-04 5 views
0

3つのテーブルを結合するためのMALステートメントを理解しようとしています。私はMALステートメントでbind関数を見つけました。テーブル lineiteml_quantityという名前のテーブルがあります。では、次のことはどういう意味ですか?Monetdbバインド関数のパラメータ

  1. (X_94:bat[:oid,:oid], X_95:bat[:oid,:int]) := sql.bind(X_4, "sys", "lineitem", "l_quantity", 2, 0, 4);

  2. (X_96:bat[:oid,:oid], X_97:bat[:oid,:int]) := sql.bind(X_4, "sys", "lineitem", "l_quantity", 2, 1, 4);

第五第六引数は何を意味するのでしょうか? src/sql/backends/monet5/sql.malから

答えて

0

pattern bind(mvc:int, 
      schema:str, 
      table:str, 
      column:str, 
      access:int, 
      part_nr:int, 
      nr_parts:int) 
    (uid:bat[:oid],uval:bat[:any_1]) 
address mvc_bind_wrap 
comment "Bind the 'schema.table.column' BAT with access kind: 
    0 - base table 
    1 - inserts 
    2 - updates"; 

引数5はアクセスタイプです。あなたの例では、これらの命令は更新列にアクセスしています(元のデータではなく更新のみが含まれています)。その後の計画に、彼らはタイプの対応する列とマージされます0

引数6は、引数と一緒に使用すると、の4(第7引数)の最初の2つのチャンクに バインドを掲載7. 2つの命令を行きます水平に分割された列。この分割がペースを取るかどうかは、mitosisoptimizerによって動的に制御されます。