I haven't posted for a while but have kept up with the Git repository, and it's about time I reported in to praise the developers for their efforts, in particular with regard to four features which I've made extensive use of:
1. The player stats window. I like the colour-coding, and the ability to sort the columns at will is very useful (I can find out what hands I've been blowing my money on). I've stopped using the HUD while playing, as it happens, but this function makes Fpdb still indispensable.
2 & 3. The graph and the session graphs. I know the graphing function has existed for a while but it was only recently that I installed the necessary libraries for it, and I wasn't disappointed. In one respect it is demonstrably superior to PT's graph: it doesn't mark off the x- and y-axes in ridiculous arbitrary "units" bearing some relationship to the total winnings or whatever (I have never understood why people tolerate this).
4. The alpha SQLite support. This database seems lightning-fast and already more or less works. Sorrow said earlier that those who wanted to test it should PM him first, but I decided to just go ahead and see what happened – sorry! I jury-rigged some of the SQL code as shown in the following Diff patch to get the player stats window to work (up to a point).
Code:
diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py
index 3c25963..524e782 100644
--- a/pyfpdb/SQL.py
+++ b/pyfpdb/SQL.py
@@ -1895,9 +1895,9 @@ class Sql:
self.query['playerDetailedStats'] = """
select <hgameTypeId> AS hgametypeid
,gt.base
- ,gt.category
+ ,gt.category AS category
,upper(gt.limitType) AS limittype
- ,s.name
+ ,s.name AS name
,min(gt.bigBlind) AS minbigblind
,max(gt.bigBlind) AS maxbigblind
/*,<hcgametypeId> AS gtid*/
@@ -1939,7 +1939,7 @@ class Sql:
,100.0*avg((hp.totalProfit+hp.rake)/(gt.bigBlind+0.0)) AS bb100xr
,avg((hp.totalProfit+hp.rake)/100.0) AS profhndxr
,avg(h.seats+0.0) AS avgseats
- ,variance(hp.totalProfit/100.0) AS variance
+ ,0.0 AS variance
from HandsPlayers hp
inner join Hands h on (h.id = hp.handId)
inner join Gametypes gt on (gt.Id = h.gameTypeId)
@@ -1949,7 +1949,7 @@ class Sql:
and h.seats <seats_test>
<flagtest>
<gtbigBlind_test>
- and to_char(h.handStart, 'YYYY-MM-DD') <datestest>
+ /*and to_char(h.handStart, 'YYYY-MM-DD') <datestest>*/
group by hgameTypeId
,hp.playerId
,gt.base
@@ -1967,7 +1967,7 @@ class Sql:
when '0' then 'Y'
else 'Z'||<position>
end
- <orderbyhgameTypeId>
+ /*<orderbyhgameTypeId>*/
,upper(gt.limitType) desc
,maxbigblind desc
,s.name
Some part of this may interest the coders: the "gt.category
AS category" appears to be necessary, for example. I've turned certain things off because they don't work in SQLite (e.g. variance – though this obviously can be calculated).
Many thanks to the developers for their hard work!