[
https://issues.apache.org/jira/browse/DERBY-4407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12765063#action_12765063
]
Rick Hillegas edited comment on DERBY-4407 at 10/13/09 6:14 AM:
----------------------------------------------------------------
Hi Knut,
I think that a row returned by a query must have at least one column. Here's
how I thread my way to this conclusion by reading part 2 of the SQL Standard:
1) The result set returned by a query expression is a kind of table called a
"derived table" according to 4.14.2 "Types of tables".
2) A row in a table must have at least one column according to the previous
section, 4.14.1 "Introduction to tables"
was (Author: rhillegas):
Hi Knut,
I think that a row returned by a query must have at least column. Here's how I
thread my way to this conclusion by reading part 2 of the SQL Standard:
1) The result set returned by a query expression is a kind of table called a
"derived table" according to 4.14.2 "Types of tables".
2) A row in a table must have at least one column according to the previous
section, 4.14.1 "Introduction to tables"
> StringIndexOutOfBoundsException in ij when result has no columns
> ----------------------------------------------------------------
>
> Key: DERBY-4407
> URL: https://issues.apache.org/jira/browse/DERBY-4407
> Project: Derby
> Issue Type: Bug
> Components: Tools
> Affects Versions: 10.6.0.0
> Reporter: Knut Anders Hatlen
> Priority: Minor
>
> A query that returns no columns should perhaps raise an SQLException of some
> kind, I don't know, but currently it doesn't, and ij fails with a
> StringIndexOutOfBoundsException when it tries to display the result.
> After DERBY-4370 it is possible to construct queries that return no columns
> by having a select list like T1.* in a join where the USING clause contains
> all of T1's columns. To reproduce:
> ij> create table t(x int);
> 0 rows inserted/updated/deleted
> ij> insert into t values (1),(2),(3);
> 3 rows inserted/updated/deleted
> ij> select t1.* from t t1 join t t2 using (x);
> JAVA ERROR: java.lang.StringIndexOutOfBoundsException: String index out of
> range: -1
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at
> java.lang.AbstractStringBuilder.setLength(AbstractStringBuilder.java:143)
> at java.lang.StringBuffer.setLength(StringBuffer.java:153)
> at
> org.apache.derby.tools.JDBCDisplayUtil.indent_DisplayBanner(JDBCDisplayUtil.java:627)
> at
> org.apache.derby.tools.JDBCDisplayUtil.indent_DisplayResults(JDBCDisplayUtil.java:368)
> at
> org.apache.derby.tools.JDBCDisplayUtil.indent_DisplayResults(JDBCDisplayUtil.java:338)
> at
> org.apache.derby.tools.JDBCDisplayUtil.indent_DisplayResults(JDBCDisplayUtil.java:241)
> at
> org.apache.derby.tools.JDBCDisplayUtil.DisplayResults(JDBCDisplayUtil.java:229)
> at
> org.apache.derby.impl.tools.ij.utilMain.displayResult(utilMain.java:448)
> at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:522)
> at
> org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:363)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
> at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
> at org.apache.derby.tools.ij.main(ij.java:59)
> at org.apache.derby.iapi.tools.run.main(run.java:53)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.