The Odds Oracle includes the capability to process multiple variations of a single PQL query through the use
of comma-separated-value (CSV) files, a platform-independent spreadsheet format.
Spreadsheets can be processed in the Odds Oracle.
Spreadsheets can also be processed via the command-line.
Here is an example of a PQL Input CSV:
#QUERY#,#PLAYER1HAND#,#PLAYER2HAND#
"select count(winsHi(player1)) as p1Wins from game='holdem', player1='#PLAYER1HAND#', player2='#PLAYER2HAND#'",,
,TT,AK
,99,QQ
,22,A2
This spreadsheet asks the question "How often does player one win against player two?" for the following hold'em matchups - TT vs AK, 99 vs. QQ, and 22 vs. A2.
The first entry in the first row must be the value #QUERY#
After the #QUERY# column are any input columns. These must begin and end with '#'.
The first entry of the second row must contain the PQL query. The PQL query will make references to the input columns specified in the first row. All other entries in the second row must be blank.
The first entry of each subsequent row must be blank, and all other entries must contain values for the input parameters.
"#QUERY#",#PLAYER1HAND#,#PLAYER2HAND#,!ERRORS!,!TRIALS!,P1WINS
"SELECT COUNT(WINSHI(PLAYER1)) AS P1WINS FROM GAME='HOLDEM', PLAYER1='#PLAYER1HAND#', PLAYER2='#PLAYER2HAND#'",,,,,
"",TT,AK,,600000,335263
"",99,QQ,,600000,111272
"",22,A2,,600000,384166
The output CSV that is generated will contain all of the data from the input CSV, in addition to the following columns.
Any rows that experienced errors will have them printed in this column, otherwise the !ERRORS! entry will be blank
This shows the number of random trials that were executed by the PQL runtime.
Each selector specified in the PQL query will have its own column containing the data that was computed by the PQL runtime. In the example above, we have one selector named 'P1Wins', and as a result we have a column of the same name in our output CSV.