table expand fast ...

Prev Next

Function Names

table expand fast, table expand fast ignore case

Description

This function works similarly to table expand(), with the only exception that the additional roes resulting from multiple lookups are appended at the bottom of the table rather than inserting them below the original row. For very large target tables, this approach saves significant becuase no rows will be shifted repeatedly. Consider sorting the table, e.g. using table sort rows() afterwards, if needed.

Function 'table expand fast'

Attention: Do not confuse with the functions table lookup fast() and table integrate fast() where the 'fast' in the function name refers to an optimized searching scheme suitable for pre-sorted tables.

Call as: procedure or function

Restrictions

Indirect parameter passing is disabled

Parameter count

6 - 9 (For parameter description and return values: see table integrate() )

Examples


       table load( lookup, "Examples/Table Lookup Example 1.csv" );

       table initialize( target, { { Name, Favorite Country },
          { Antonio,  Italy}, { Fritz, Germany }, { Andreas, Germany }, { Pascale, France}, { Mike, USA } } );

       echo("Target table before looking up with 'table digest':");
       table list ( target );

       echo("Lookup table:");
       table list ( lookup );

       count[] = table expand fast( target, Favorite Country, {Meal, Rating Sum},
                         lookup, Country, { Recommendation, Rating }, { overwrite, add }, true, {Counter,Counter} );

       echo("Target table after looking up with 'table digest':");
       table list ( target );

       echo("Lookup table after looking up to check the 'Counter' column:");
       table list ( lookup );

       echo("Number of accesses: ", count[] );

Output

Target table before looking up with 'table digest':
    0 : Name    | Favorite Country
    1 : Antonio | Italy           
    2 : Fritz   | Germany         
    3 : Andreas | Germany         
    4 : Pascale | France          
    5 : Mike    | USA             

Lookup table:
    0 : City      | Country    | Meal or Drink | Recommendation | Rating
    1 : Hamburg   | Germany    | Meal          | Hering         | 2     
    2 : Hamburg   | Germany    | Meal          | Seafood        | 3     
    3 : New York  | USA        | Meal          | Pizza          | 5     
    4 : New York  | USA        | Meal          | Hamburger      | 5     
    5 : Florence  | Italy      | Drink         | Chianti        | 4     
    6 : Florence  | Italy      | Meal          | Tagliatelli    | 5     
    7 : Edinburgh | G. Britain | Drink         | Single Malt    | 3     
    8 : Edinburgh | G. Britain | Meal          | Fish & Chips   | 3     
    9 : New York  | USA        | Drink         | Lager          | 3     
   10 : Camarque  | France     | Meal          | Cheese         | 3     
   11 : Camarque  | France     | Spice         | Fleur du sel   | 4     
   12 : Boston    | USA        | Meal          | Lobster        | 4     
   13 : Plzen     | Czech Rep. | Drink         | Pils           | 4     
   14 : Munich    | Germany    | Meal          | Pork           | 3     
   15 : Munich    | Germany    | Drink         | Weissbier      | 5     

Target table after looking up with 'table digest':
    0 : Name    | Favorite Country | Meal         | Rating Sum | Counter
    1 : Antonio | Italy            | Chianti      | 4          | 1      
    2 : Fritz   | Germany          | Hering       | 2          | 1      
    3 : Andreas | Germany          | Hering       | 2          | 1      
    4 : Pascale | France           | Cheese       | 3          | 1      
    5 : Mike    | USA              | Pizza        | 5          | 1      
    6 : Antonio | Italy            | Tagliatelli  | 5          | 1      
    7 : Fritz   | Germany          | Seafood      | 3          | 1      
    8 : Fritz   | Germany          | Pork         | 3          | 1      
    9 : Fritz   | Germany          | Weissbier    | 5          | 1      
   10 : Andreas | Germany          | Seafood      | 3          | 1      
   11 : Andreas | Germany          | Pork         | 3          | 1      
   12 : Andreas | Germany          | Weissbier    | 5          | 1      
   13 : Pascale | France           | Fleur du sel | 4          | 1      
   14 : Mike    | USA              | Hamburger    | 5          | 1      
   15 : Mike    | USA              | Lager        | 3          | 1      
   16 : Mike    | USA              | Lobster      | 4          | 1      

Lookup table after looking up to check the 'Counter' column:
    0 : City      | Country    | Meal or Drink | Recommendation | Rating | Counter
    1 : Hamburg   | Germany    | Meal          | Hering         | 2      | 2      
    2 : Hamburg   | Germany    | Meal          | Seafood        | 3      | 2      
    3 : New York  | USA        | Meal          | Pizza          | 5      | 1      
    4 : New York  | USA        | Meal          | Hamburger      | 5      | 1      
    5 : Florence  | Italy      | Drink         | Chianti        | 4      | 1      
    6 : Florence  | Italy      | Meal          | Tagliatelli    | 5      | 1      
    7 : Edinburgh | G. Britain | Drink         | Single Malt    | 3      |        
    8 : Edinburgh | G. Britain | Meal          | Fish & Chips   | 3      |        
    9 : New York  | USA        | Drink         | Lager          | 3      | 1      
   10 : Camarque  | France     | Meal          | Cheese         | 3      | 1      
   11 : Camarque  | France     | Spice         | Fleur du sel   | 4      | 1      
   12 : Boston    | USA        | Meal          | Lobster        | 4      | 1      
   13 : Plzen     | Czech Rep. | Drink         | Pils           | 4      |        
   14 : Munich    | Germany    | Meal          | Pork           | 3      | 2      
   15 : Munich    | Germany    | Drink         | Weissbier      | 5      | 2      

Number of accesses: 32
Try it yourself: Open LIB_Function_table_expand_fast.b4p in B4P_Examples.zip. Decompress before use.

See also

table expand
table expand fast smart
table expand fast with rules
table expand fast with rules once