When using odbc_auth with postgresql native driver, I can register users but cannot authenticate. Logs show the challenge/response fails and ejabberd returns not-authorized. I worked on this for a good 2 days and it's not simply a matter of not having the correct password. Just changing odbc_auth to internal_auth makes everything work. I tried enabling and disabling all the modules that support odbc to see if that would make a difference, but nothing. Tried compiling from source, using two different versions of postgresql, and went though a ton of different configuration parameters.
The strange thing is that ejabberd is querying the database when the authorization request hits, but it's not hashing the password correctly or something. No errors, just fails the authorization.