Closed GoogleCodeExporter closed 9 years ago
tested also with 3.6.23.1-SNAPSHOT, and result is the same
Original comment by thecatat...@gmail.com
on 28 May 2010 at 6:32
Here is my suggested modification to MetaData.getColumns()
colType = colType == null ? "TEXT" : colType.toUpperCase();
int colJavaType = -1;
// if (colType.equals("INT") || colType.equals("INTEGER"))
// colJavaType = Types.INTEGER;
// else if (colType.equals("TEXT"))
// colJavaType = Types.VARCHAR;
// else if (colType.equals("FLOAT"))
// colJavaType = Types.FLOAT;
// else
// colJavaType = Types.VARCHAR;
/*
* improved column types
* ref http://www.sqlite.org/datatype3.html - 2.1 Determination Of Column
Affinity
* plus some degree of artistic-license applied
*/
// rule #1
if (colType.matches(".*(INT).*"))
colJavaType=Types.INTEGER;
// rule #2
else if (colType.matches(".*(CHAR|CLOB|TEXT).*"))
colJavaType = Types.VARCHAR;
// rule #3 (should be NULL, but VARCHAR is better in practice)
else if (colType.matches(".*(BLOB).*") || colType.equals(""))
colJavaType = Types.VARCHAR;
// rule #4
else if (colType.matches(".*(REAL|FLOA|DOUB).*"))
colJavaType = Types.FLOAT;
// rule #5 doesn't really work out too well, so we improvise a bit from
here on
else if (colType.matches(".*(DEC|NUM).*"))
colJavaType = Types.FLOAT;
else if (colType.matches(".*(BOOL).*"))
colJavaType = Types.INTEGER;
else // catch-all
colJavaType = Types.VARCHAR;
Original comment by thecatat...@gmail.com
on 3 Jun 2010 at 4:47
Or to make it a bit neater...
/*
* improved column types
* ref http://www.sqlite.org/datatype3.html - 2.1 Determination Of Column
Affinity
* plus some degree of artistic-license applied
*/
// rule #1 + boolean
if (colType.matches(".*(INT|BOOL).*"))
colJavaType=Types.INTEGER;
// rule #2 + blob
else if (colType.matches(".*(CHAR|CLOB|TEXT|BLOB).*"))
colJavaType = Types.VARCHAR;
// rule #4 + decimal, numeric
else if (colType.matches(".*(REAL|FLOA|DOUB|DEC|NUM).*"))
colJavaType = Types.FLOAT;
else // catch-all
colJavaType = Types.VARCHAR;
Original comment by thecatat...@gmail.com
on 3 Jun 2010 at 4:55
Original comment by taroleo
on 26 Oct 2010 at 6:50
This issue was closed by revision 3320be9e84.
Original comment by taroleo
on 26 Oct 2010 at 7:00
Original issue reported on code.google.com by
thecatat...@gmail.com
on 28 May 2010 at 6:23