On Wed, Jan 25, 2017 at 7:47 PM, David Landry <[email protected]> wrote:

> Could it be a problem with mapping from JDBC VARCHAR to SQLite's INTEGER?
> Actually, I'm a little confused about why the MySQL JDBC type is a VARCHAR,
> but Postgres has them as INTEGER (especially since the underlying type is
> an integer for both DBs).
>
>
Internal (within the Java side of Guacamole) storage of the database IDs is
strings, because connection identifiers are abstracted as generic strings
at the extension API level. The fact that those strings are actually
integers and translate into integer database IDs is an implementation
detail of the JDBC auth backend. These were initially mapped as VARCHAR
since they are, indeed, strings, and the expectation was that the database
engine would handle the conversion, and MySQL did behave that way.
PostgreSQL, on the other hand, did not do the same implicit conversion, and
it was necessary to explicitly cast to integer.

It's certainly a quirk, but assuming SQLite doesn't implicitly convert like
MySQL, I don't think that it would likely result in an
ArrayIndexOutOfBoundsException. I'd expect any error due to the type of the
column to be thrown through the database engine out through the JDBC
driver, not prior to the query being shipped to the database engine when
the PreparedStatement is being populated.

- Mike

Reply via email to