~ubuntu-branches/ubuntu/maverick/hsqldb/maverick

« back to all changes in this revision

Viewing changes to src/org/hsqldb/test/TestSql.java

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-09-26 11:47:49 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20060926114749-3jd0utm7w21x1iqt
Tags: 1.8.0.5-2ubuntu1
* Synchronise with Debian unstable; remaining changes:
  - build using java-gcj-compat.
* libhsqldb-java: Add gij as alternative dependency.
* Build a libhsqldb-java-gcj package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (c) 2001-2005, The HSQL Development Group
2
 
 * All rights reserved.
3
 
 *
4
 
 * Redistribution and use in source and binary forms, with or without
5
 
 * modification, are permitted provided that the following conditions are met:
6
 
 *
7
 
 * Redistributions of source code must retain the above copyright notice, this
8
 
 * list of conditions and the following disclaimer.
9
 
 *
10
 
 * Redistributions in binary form must reproduce the above copyright notice,
11
 
 * this list of conditions and the following disclaimer in the documentation
12
 
 * and/or other materials provided with the distribution.
13
 
 *
14
 
 * Neither the name of the HSQL Development Group nor the names of its
15
 
 * contributors may be used to endorse or promote products derived from this
16
 
 * software without specific prior written permission.
17
 
 *
18
 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
 
 * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
22
 
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23
 
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
 
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26
 
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
 
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
 
 */
30
 
 
31
 
 
 
1
/* Copyright (c) 2001-2005, The HSQL Development Group
 
2
 * All rights reserved.
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions are met:
 
6
 *
 
7
 * Redistributions of source code must retain the above copyright notice, this
 
8
 * list of conditions and the following disclaimer.
 
9
 *
 
10
 * Redistributions in binary form must reproduce the above copyright notice,
 
11
 * this list of conditions and the following disclaimer in the documentation
 
12
 * and/or other materials provided with the distribution.
 
13
 *
 
14
 * Neither the name of the HSQL Development Group nor the names of its
 
15
 * contributors may be used to endorse or promote products derived from this
 
16
 * software without specific prior written permission.
 
17
 *
 
18
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 
19
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
20
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
21
 * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
 
22
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
23
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
24
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
25
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 
26
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
27
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
28
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
 */
 
30
 
 
31
 
32
32
package org.hsqldb.test;
33
33
 
34
34
import java.sql.Connection;
621
621
        } catch (SQLException e) {
622
622
            assertEquals(0, 1);
623
623
        }
 
624
 
 
625
        try {
 
626
            connection.setAutoCommit(false);
 
627
 
 
628
            java.sql.Savepoint savepoint =
 
629
                connection.setSavepoint("savepoint");
 
630
 
 
631
            connection.createStatement().executeQuery("CALL true;");
 
632
            connection.rollback(savepoint);
 
633
        } catch (SQLException e) {
 
634
            assertEquals(0, 1);
 
635
        }
624
636
    }
625
637
 
626
638
    /**
629
641
     * as varchar. The rowOutputBase class attempts to cast the Java Boolean
630
642
     * into String.
631
643
     */
632
 
    public void testUnionColumnTypes() throws Exception {
 
644
    public void testUnionColumnTypes() {
633
645
 
634
646
        try {
635
647
            Connection conn = newConnection();
636
648
            Statement  stmt = conn.createStatement();
637
649
 
 
650
            stmt.execute("DROP TABLE test1 IF EXISTS");
 
651
            stmt.execute("DROP TABLE test2 IF EXISTS");
638
652
            stmt.execute("CREATE TABLE test1 (id int, b1 boolean)");
639
653
            stmt.execute("CREATE TABLE test2 (id int)");
640
654
            stmt.execute("INSERT INTO test1 VALUES(1,true)");
641
655
            stmt.execute("INSERT INTO test2 VALUES(2)");
642
 
            stmt.executeQuery(
 
656
 
 
657
            ResultSet rs = stmt.executeQuery(
643
658
                "select id,null as b1 from test2 union select id, b1 from test1");
 
659
            Boolean[] array = new Boolean[2];
 
660
 
 
661
            for (int i = 0; rs.next(); i++) {
 
662
                boolean boole = rs.getBoolean(2);
 
663
 
 
664
                array[i] = Boolean.valueOf(boole);
 
665
 
 
666
                if (rs.wasNull()) {
 
667
                    array[i] = null;
 
668
                }
 
669
            }
 
670
 
 
671
            boolean result = (array[0] == null && array[1] == Boolean.TRUE)
 
672
                             || (array[0] == Boolean.TRUE
 
673
                                 && array[1] == null);
 
674
 
 
675
            assertTrue(result);
644
676
        } catch (SQLException e) {
645
677
            e.printStackTrace();
646
678
            System.out.println("TestSql.testUnionColumnType() error: "