Here's the test case
CREATE TABLE FOO(ID INT);
CREATE VIEW BAR AS SELECT CAST(NULL AS INT) AS BAR_COL FROM FOO;
CREATE TABLE SNAFU AS SELECT CAST(NULL AS INT) AS SNAFU_COL FROM FOO;
SELECT * FROM FOO;
SELECT * FROM BAR;
SELECT * FROM SNAFU;
All seems to be ok except that view BAR and table SNAFU report as their
type NULL.
It should be INT.
But there is more.
Close the database and open it.
Then make ANY select and you will get
Cause: org.h2.jdbc.JdbcSQLException: Unknown data type: "NULL"; SQL
statement:
CREATE CACHED TABLE PUBLIC.SNAFU(
SNAFU_COL NULL
) [50004-134]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:316)
at org.h2.message.DbException.get(DbException.java:167)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.command.Parser.parseColumn(Parser.java:3411)
at org.h2.command.Parser.parseColumnForTable(Parser.java:3265)
at org.h2.command.Parser.parseCreateTable(Parser.java:4725)
at org.h2.command.Parser.parseCreate(Parser.java:3517)
at org.h2.command.Parser.parsePrepared(Parser.java:314)
at org.h2.command.Parser.parse(Parser.java:278)
at org.h2.command.Parser.parse(Parser.java:250)
at org.h2.command.Parser.prepare(Parser.java:199)
at org.h2.engine.Session.prepare(Session.java:405)
at org.h2.engine.Session.prepare(Session.java:392)
at org.h2.engine.MetaRecord.execute(MetaRecord.java:56)
at org.h2.engine.Database.open(Database.java:584)
at org.h2.engine.Database.openDatabase(Database.java:204)
at org.h2.engine.Database.<init>(Database.java:199)
at org.h2.engine.Engine.openSession(Engine.java:56)
at org.h2.engine.Engine.openSession(Engine.java:141)
at org.h2.engine.Engine.getSession(Engine.java:120)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:118)
at java.lang.Thread.run(Thread.java:619)
You have just managed to make your database UNREADABLE!
Reason is the NULL datatype that h2 has erroneously set as the datatype
of SNAFU_COL.
Cheers,
- Rami
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.