I did some some experimentation on this a while back whenever I had the WUnderground plugin writing a ton of columns and rows to a table... what it came down to is that changing a column type in Postgre in a high-volume environment is considered an unsafe operation.
Their recommended approach is to create a new table with the new structure, insert the data from old to new table, then drop old table and rename new. I started to look into adding this into the SQL Logger a while back but ended up abandoning it just due to lack of time and the infrequency that I encountered it.
Jay's point about transactional versus reporting structure is a very good point too... you could create basically a mini data warehouse -- update a non-SQL Logger table with data in the format you need for reporting, then trim off the transactional data in the SQL Logger's device table to a reasonable size/history.