db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yip Ng (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2018) NullPointerException in CREATE VIEW ... VALUES NULL;
Date Sat, 11 Nov 2006 23:20:38 GMT
    [ http://issues.apache.org/jira/browse/DERBY-2018?page=comments#action_12449050 ] 
            
Yip Ng commented on DERBY-2018:
-------------------------------

>Christian d'Heureuse wrote:
> Why does the statement CREATE VIEW v1 (f1) AS VALUES NULL have to be forbidden? 

One reason is to stay consistent with the behavior with issuing VALUES NULL in Derby.  e.g.:

  ij> values null;
  ERROR 42X07: Null is only allowed in a VALUES clause within an INSERT statement.

  ij> create view v1 (c1) as values null;
  ERROR 42X07: Null is only allowed in a VALUES clause within an INSERT statement.

If CREATE VIEW v1 AS SELECT NULL as f1 executes successfully.  What is the data type for this

view column?  Integer type? Character type or something else?  In any case, it is going to
be an implementation defined which in my opinion is not very portable and it is better to
declare this explicitly:

ij> values cast(null as integer);
1
-----------
NULL

1 row selected
ij> create view v1 (c1) as values cast(null as integer);
0 rows inserted/updated/deleted
ij> select * from v1;
C1
-----------
NULL

1 row selected

Of course, you may not agree with me.  So perhaps this issue can be further discuss in the
Derby dev list to see how the community feels about it.  In any case, the current state is
better than having a NPE to occur.  =)


> NullPointerException in CREATE VIEW ... VALUES NULL;
> ----------------------------------------------------
>
>                 Key: DERBY-2018
>                 URL: http://issues.apache.org/jira/browse/DERBY-2018
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.1.6
>         Environment: Java 1.5.0_06-b05
>            Reporter: Christian d'Heureuse
>         Assigned To: Yip Ng
>            Priority: Minor
>             Fix For: 10.3.0.0
>
>         Attachments: derby2018-trunk-diff01.txt, derby2018-trunk-stat01.txt
>
>
> The following statement produces a NullPointerException:
>    CREATE VIEW v1 (f1) AS VALUES NULL;
> Stack trace:
> ----------------------------------------------------------------
> 2006-10-30 12:39:31.750 GMT:
>  Booting Derby version The Apache Software Foundation - Apache Derby - 10.2.1.6 - (452058):
instance c013800d-010e-993b-512f-00000012f418
> on database directory C:\temp_sys\temp_Derby_TestErr_db
> Database Class Loader started - derby.database.classpath=''
> 2006-10-30 12:39:38.484 GMT Thread[main,5,main] (XID = 122), (SESSIONID = 0), (DATABASE
= c:\temp_sys\temp_Derby_TestErr_db), (DRDAID = null), Cleanup action starting
> 2006-10-30 12:39:38.484 GMT Thread[main,5,main] (XID = 122), (SESSIONID = 0), (DATABASE
= c:\temp_sys\temp_Derby_TestErr_db), (DRDAID = null), Failed Statement is: CREATE VIEW v1
(f1) AS VALUES NULL
> java.lang.NullPointerException
>         at org.apache.derby.impl.sql.catalog.SYSCOLUMNSRowFactory.makeRow(Unknown Source)
>         at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.addDescriptorArray(Unknown
Source)
>         at org.apache.derby.impl.sql.execute.CreateViewConstantAction.executeConstantAction(Unknown
Source)
>         at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
>         at org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown Source)
>         at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
>         at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
>         at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
>         at org.apache.derby.impl.tools.ij.Main14.main(Unknown Source)
>         at org.apache.derby.tools.ij.main(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message