Had the same trouble with long SQL queries. It seems the RADIUS standard only allows up to 253 characters or so. I ended up modifying my table column names to a shorter name. Not nice, but it works. I also 'merged' some tables information to shorten the queries.
Initially I changed the max string length within the code, but the main disadvantage is that every upgrade you have to do the same. Now I use 100% unmodified FreeRadius code and the upgrade to 1.1.0 went without any problems. Gunther > -----Original Message----- > From: > [EMAIL PROTECTED] > ius.org > [mailto:[EMAIL PROTECTED] > .freeradius.org] On Behalf Of Luis Zarrabeitia > Sent: Wednesday, March 01, 2006 9:52 PM > To: freeradius-users@lists.freeradius.org > Subject: Long mysql queries in sqlcounter get truncated. > > > Hi. I'm trying to configure a freeradius 1.1.0 [Debian > testing] server with mysql backend, and I'm having trouble > with the "sql counter" module. When trying to customize the > query to obtain the remaining time (the default query does > not reflect my enviroment), I find mysql syntax errors. > Apparently, it is not processing the full query. > > Output of "freeradius -X". Note that I changed the actual > query for brevity, as anything [valid] that I put in there > seem to get me the same result. > > ------- > rlm_sql_mysql: query: SELECT <pretty big and boring query> > AND UNIX_TIMESTAMP(AcctStartT > rlm_sql_mysql: MYSQL check_error: 1064 received rlm_sql > (sql): database query error, SELECT <pretty big and boring query> AND > UNIX_TIMESTAMP(AcctStartT: You have an error in your SQL > syntax; check the manual that corresponds to your MySQL > server version for the right syntax to use near '' at line 1 > rlm_sql (sql): Released sql socket id: 2 > radius_xlat: 'ime)+AcctSessionTime>'1138766400'' > --------- > > (the original query on my radiusd.conf file is: > SELECT <pretty big and boring query> AND > UNIX_TIMESTAMP(AcctStartTime)+AcctSessionTime>'%b') > > Notice how the first line in the log is truncated to the "T" > of "AcctStartT", that is, the first 251 characters of the > query after applying the parameter expansion (%b, %k). (the > length is always 251, regardless of the query - if I strip > spaces from it I can fit more, but it is still not enough). > Also notice how the end of the query is continued on the next > "radius_xlat:" line. > > The query works perfectly with the command line mysql client > (after %b and %k expansions). > > Glancing at the source I see a line "#define MAX_QUERY_LEN > 1024" in rlm_sqlcounter.c, far greater than 251, wich makes > me doubt that the problem lies in that size, and seems to > confirm my suspicion that it might be a configuration > parameter that I'm missing somewhere. > > Can you suggest either a solution or a workaround? (other > than storing the query in a mysql5.0 'stored procedure', > because I do not wish to add Debian Unstable to my production servers) > > Regards, > > Zarrabeitia > - > List info/subscribe/unsubscribe? See > http://www.freeradius.org/list/users.html - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html