I wrote a script that'll generate custom columns and stats, they still have to be imported by hand but it's still better than using find+replace if you decide you want to change the blinds, plus obv. less error prone.
http://www.pho7o.com/poker/pt4/index.php
This results in something like you see below (the fold). Unfortunately, the resulting HUD which uses these five stats is *dog* slow, on the order of 15+ second delays in most cases. Even indexing cache and vacuuming the db does not correct the issue. I've never noticed lag of even close to this magnitude using the built-in stats. I would have guessed that once the columns are created they'd be as fast as native ones...
Is there anything else I can do to correct? Are there plans for improvements in terms of speed?
Alternately, since my stuff is by blind level, are there any plans to add eff stack filtering to the stat in the HUD like "positioning" exists now?
Thanks much in advance!
----------------[%fold%]----------------
COLUMNS
0_to_8bb
cnt_f_fold_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_f_fold, 1, 0])
cnt_f_call_0_to_8bb
sum(if[if[tourney_hand_player_statistics.cnt_f_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0, 1, 0])
cnt_f_bet_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_f_bet, 1, 0])
cnt_f_raise_0_to_8bb
sum(if[if[tourney_hand_player_statistics.cnt_f_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0, 1, 0])
cnt_t_fold_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_t_fold, 1, 0])
cnt_t_call_0_to_8bb
sum(if[if[tourney_hand_player_statistics.cnt_t_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0, 1, 0])
cnt_t_bet_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_t_bet, 1, 0])
cnt_t_raise_0_to_8bb
sum(if[if[tourney_hand_player_statistics.cnt_t_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0, 1, 0])
cnt_r_fold_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_r_fold, 1, 0])
cnt_r_call_0_to_8bb
sum(if[if[tourney_hand_player_statistics.cnt_r_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0, 1, 0])
cnt_r_bet_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_r_bet, 1, 0])
cnt_r_raise_0_to_8bb
sum(if[if[tourney_hand_player_statistics.cnt_r_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0, 1, 0])
cnt_vpip_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.flg_vpip, 1, 0])
cnt_hands_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND tourney_hand_player_statistics.id_hand > 0, 1, 0])
cnt_walks_0_to_8bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 0 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 8 AND lookup_actions_p.action = '', 1, 0])
8_to_20bb
cnt_f_fold_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_f_fold, 1, 0])
cnt_f_call_8_to_20bb
sum(if[if[tourney_hand_player_statistics.cnt_f_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8, 1, 0])
cnt_f_bet_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_f_bet, 1, 0])
cnt_f_raise_8_to_20bb
sum(if[if[tourney_hand_player_statistics.cnt_f_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8, 1, 0])
cnt_t_fold_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_t_fold, 1, 0])
cnt_t_call_8_to_20bb
sum(if[if[tourney_hand_player_statistics.cnt_t_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8, 1, 0])
cnt_t_bet_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_t_bet, 1, 0])
cnt_t_raise_8_to_20bb
sum(if[if[tourney_hand_player_statistics.cnt_t_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8, 1, 0])
cnt_r_fold_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_r_fold, 1, 0])
cnt_r_call_8_to_20bb
sum(if[if[tourney_hand_player_statistics.cnt_r_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8, 1, 0])
cnt_r_bet_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_r_bet, 1, 0])
cnt_r_raise_8_to_20bb
sum(if[if[tourney_hand_player_statistics.cnt_r_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8, 1, 0])
cnt_vpip_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.flg_vpip, 1, 0])
cnt_hands_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND tourney_hand_player_statistics.id_hand > 8, 1, 0])
cnt_walks_8_to_20bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 8 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 20 AND lookup_actions_p.action = '', 1, 0])
20_to_40bb
cnt_f_fold_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_f_fold, 1, 0])
cnt_f_call_20_to_40bb
sum(if[if[tourney_hand_player_statistics.cnt_f_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20, 1, 0])
cnt_f_bet_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_f_bet, 1, 0])
cnt_f_raise_20_to_40bb
sum(if[if[tourney_hand_player_statistics.cnt_f_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20, 1, 0])
cnt_t_fold_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_t_fold, 1, 0])
cnt_t_call_20_to_40bb
sum(if[if[tourney_hand_player_statistics.cnt_t_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20, 1, 0])
cnt_t_bet_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_t_bet, 1, 0])
cnt_t_raise_20_to_40bb
sum(if[if[tourney_hand_player_statistics.cnt_t_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20, 1, 0])
cnt_r_fold_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_r_fold, 1, 0])
cnt_r_call_20_to_40bb
sum(if[if[tourney_hand_player_statistics.cnt_r_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20, 1, 0])
cnt_r_bet_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_r_bet, 1, 0])
cnt_r_raise_20_to_40bb
sum(if[if[tourney_hand_player_statistics.cnt_r_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20, 1, 0])
cnt_vpip_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.flg_vpip, 1, 0])
cnt_hands_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND tourney_hand_player_statistics.id_hand > 20, 1, 0])
cnt_walks_20_to_40bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 20 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 40 AND lookup_actions_p.action = '', 1, 0])
40_to_75bb
cnt_f_fold_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_f_fold, 1, 0])
cnt_f_call_40_to_75bb
sum(if[if[tourney_hand_player_statistics.cnt_f_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40, 1, 0])
cnt_f_bet_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_f_bet, 1, 0])
cnt_f_raise_40_to_75bb
sum(if[if[tourney_hand_player_statistics.cnt_f_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40, 1, 0])
cnt_t_fold_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_t_fold, 1, 0])
cnt_t_call_40_to_75bb
sum(if[if[tourney_hand_player_statistics.cnt_t_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40, 1, 0])
cnt_t_bet_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_t_bet, 1, 0])
cnt_t_raise_40_to_75bb
sum(if[if[tourney_hand_player_statistics.cnt_t_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40, 1, 0])
cnt_r_fold_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_r_fold, 1, 0])
cnt_r_call_40_to_75bb
sum(if[if[tourney_hand_player_statistics.cnt_r_call > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40, 1, 0])
cnt_r_bet_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_r_bet, 1, 0])
cnt_r_raise_40_to_75bb
sum(if[if[tourney_hand_player_statistics.cnt_r_raise > 0] AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40, 1, 0])
cnt_vpip_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.flg_vpip, 1, 0])
cnt_hands_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND tourney_hand_player_statistics.id_hand > 40, 1, 0])
cnt_walks_40_to_75bb
sum(if[(tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) > 40 AND (tourney_hand_summary.amt_p_effective_stack / tourney_blinds.amt_bb) <= 75 AND lookup_actions_p.action = '', 1, 0])
STATS
RAFq 0 to 8bb
format_number(((((cnt_f_bet_0_to_8bb + cnt_f_raise_0_to_8bb + cnt_t_bet_0_to_8bb + cnt_t_raise_0_to_8bb + cnt_r_bet_0_to_8bb + cnt_r_raise_0_to_8bb) / (cnt_f_call_0_to_8bb + cnt_f_fold_0_to_8bb + cnt_t_call_0_to_8bb + cnt_t_fold_0_to_8bb + cnt_r_call_0_to_8bb + cnt_r_fold_0_to_8bb + cnt_f_bet_0_to_8bb + cnt_f_raise_0_to_8bb + cnt_t_bet_0_to_8bb + cnt_t_raise_0_to_8bb + cnt_r_bet_0_to_8bb + cnt_r_raise_0_to_8bb)) * 100) * ((cnt_vpip_0_to_8bb / (cnt_hands_0_to_8bb - cnt_walks_0_to_8bb)) * 100)) / 1000, 0, false, false)
RAFq 8 to 20bb
format_number(((((cnt_f_bet_8_to_20bb + cnt_f_raise_8_to_20bb + cnt_t_bet_8_to_20bb + cnt_t_raise_8_to_20bb + cnt_r_bet_8_to_20bb + cnt_r_raise_8_to_20bb) / (cnt_f_call_8_to_20bb + cnt_f_fold_8_to_20bb + cnt_t_call_8_to_20bb + cnt_t_fold_8_to_20bb + cnt_r_call_8_to_20bb + cnt_r_fold_8_to_20bb + cnt_f_bet_8_to_20bb + cnt_f_raise_8_to_20bb + cnt_t_bet_8_to_20bb + cnt_t_raise_8_to_20bb + cnt_r_bet_8_to_20bb + cnt_r_raise_8_to_20bb)) * 100) * ((cnt_vpip_8_to_20bb / (cnt_hands_8_to_20bb - cnt_walks_8_to_20bb)) * 100)) / 1000, 0, false, false)
RAFq 20 to 40bb
format_number(((((cnt_f_bet_20_to_40bb + cnt_f_raise_20_to_40bb + cnt_t_bet_20_to_40bb + cnt_t_raise_20_to_40bb + cnt_r_bet_20_to_40bb + cnt_r_raise_20_to_40bb) / (cnt_f_call_20_to_40bb + cnt_f_fold_20_to_40bb + cnt_t_call_20_to_40bb + cnt_t_fold_20_to_40bb + cnt_r_call_20_to_40bb + cnt_r_fold_20_to_40bb + cnt_f_bet_20_to_40bb + cnt_f_raise_20_to_40bb + cnt_t_bet_20_to_40bb + cnt_t_raise_20_to_40bb + cnt_r_bet_20_to_40bb + cnt_r_raise_20_to_40bb)) * 100) * ((cnt_vpip_20_to_40bb / (cnt_hands_20_to_40bb - cnt_walks_20_to_40bb)) * 100)) / 1000, 0, false, false)
RAFq 40 to 75bb
format_number(((((cnt_f_bet_40_to_75bb + cnt_f_raise_40_to_75bb + cnt_t_bet_40_to_75bb + cnt_t_raise_40_to_75bb + cnt_r_bet_40_to_75bb + cnt_r_raise_40_to_75bb) / (cnt_f_call_40_to_75bb + cnt_f_fold_40_to_75bb + cnt_t_call_40_to_75bb + cnt_t_fold_40_to_75bb + cnt_r_call_40_to_75bb + cnt_r_fold_40_to_75bb + cnt_f_bet_40_to_75bb + cnt_f_raise_40_to_75bb + cnt_t_bet_40_to_75bb + cnt_t_raise_40_to_75bb + cnt_r_bet_40_to_75bb + cnt_r_raise_40_to_75bb)) * 100) * ((cnt_vpip_40_to_75bb / (cnt_hands_40_to_75bb - cnt_walks_40_to_75bb)) * 100)) / 1000, 0, false, false)
