2016-08-04 5 views
0

Ich versuche, die MAL-Anweisungen zum Verbinden von drei Tabellen zu verstehen. Ich stieß auf die bind Funktion in MAL-Anweisung. Ich habe eine Tabelle namens lineitem mit l_quantity drin. Was bedeuten die folgenden Aussagen?Monetdb Bindefunktion Parameter

  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);

Was bedeutet die 5. und 6. Argument bedeuten?

Antwort

0

Von src/sql/backends/monet5/sql.mal:

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"; 

Argument 5 ist Zugangsart. In Ihrem Beispiel greifen diese Anweisungen auf Aktualisierungsspalten zu (sie enthalten nur Aktualisierungen, nicht die Originaldaten). Später im Plan werden sie mit den entsprechenden Spalten vom Typ 0.

Argument 6 geht zusammen mit dem Argument 7. Die beiden Anweisungen zusammengefasst werden Sie binden geschrieben auf die ersten beiden Stücke von 4 (7. Argument) eines horizontal partitionierte Spalte. Ob und wie diese Partitionierung Schritt hält, wird von der mitosisoptimizer dynamisch gesteuert.

Verwandte Themen