My test takes 15 seconds to create the table and 15 seconds to add the extra column. I am using <<runFormulas to make the formula evaluate immediately rather than waiting for idle time.
start = Tick Seconds();
dt = New Table( "Untitled",
Add Rows( 30e6 ),
New Column( "L", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "result", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "H", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) )
);
dt<<runformulas;
stop = Tick Seconds();
Show("create", stop - start, N Rows( dt ) );
start = Tick Seconds();
dt << New Column( "New status", Character, Nominal, Formula( If( :result < :L | :result > :H, "Fail", "Pass" ) ) );
dt << runformulas;
stop = Tick Seconds();
Show( "add", stop - start, N Rows( dt ) );
"create";
stop - start = 12.8833333333605;
N Rows(dt) = 30000000;
"add";
stop - start = 12.6833333332906;
N Rows(dt) = 30000000;
Formula added
Craige