File: SimpleTest.java

package info (click to toggle)
derby 10.14.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 79,056 kB
  • sloc: java: 691,961; sql: 42,686; xml: 20,512; sh: 3,373; sed: 96; makefile: 60
file content (150 lines) | stat: -rw-r--r-- 9,237 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/**
 *  Derby - Class org.apache.derbyTesting.functionTests.tests.lang.SimpleTest
 *  
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.derbyTesting.functionTests.tests.lang;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import junit.framework.Test;

import org.apache.derbyTesting.junit.BaseJDBCTestCase;
import org.apache.derbyTesting.junit.DatabasePropertyTestSetup;
import org.apache.derbyTesting.junit.JDBC;
import org.apache.derbyTesting.junit.TestConfiguration;

public class SimpleTest extends BaseJDBCTestCase {

    public SimpleTest(String name) {
        super(name);
    
    }
    
    /**
     * converted from supersimple.sql.  Data limits seems a 
     * more relevant name.
     * 
     * @throws SQLException
     */
    public void testBasicOperations() throws SQLException {
        Connection conn = getConnection();
        Statement s = conn.createStatement();
        s.executeUpdate("create table b (si smallint,i int, bi bigint, r real, f float, d double precision, n5_2 numeric(5,2), dec10_3 decimal(10,3), ch20 char(20),vc varchar(20), lvc long varchar, blobCol blob(1000),  clobCol clob(1000))");
        s.executeUpdate(" insert into b values(2,3,4,5.3,5.3,5.3,31.13,123456.123, 'one','one','one',cast(X'01ABCD' as blob(1000)),'one')");
        s.executeUpdate("insert into b values(-32768,-2147483648, -9223372036854775808 ,1.2E-37, 2.225E-307, +2.225E-307,-56.12, -123456.123,'one','one','one', cast(X'01ABCD' as blob(1000)),'one')");
        s.executeUpdate(" insert into b values(null,null,null,null,null,null,null,null,null,null,null,null,null)");
        s.executeUpdate(" insert into b values(32767,2147483647, 9223372036854775807 ,1.4 , 3.4028235E38 ,3.4028235E38  ,999.99, 9999999.999,'one','one','one',cast(X'01ABCD' as blob(1000)), 'one')");
        ResultSet rs = s.executeQuery("select * from b");
        String [][] expectedRows = {{"2","3","4","5.3","5.3","5.3","31.13","123456.123","one                 ","one","one","01abcd","one"},
        {"-32768","-2147483648","-9223372036854775808","1.2E-37","2.225E-307","2.225E-307","-56.12","-123456.123","one                 ","one","one","01abcd","one"},
        {null,null,null,null,null,null,null,null,null,null,null,null,null},
        {"32767","2147483647","9223372036854775807","1.4","3.4028235E38","3.4028235E38","999.99","9999999.999","one                 ","one","one","01abcd","one"},
        };
        
        JDBC.assertFullResultSet(rs,expectedRows);
        s.executeUpdate("drop table b");
        s.executeUpdate("create table c  (si smallint not null,i int not null , bi bigint not null, r real not null, f float not null, d double precision not null, n5_2 numeric(5,2) not null , dec10_3 decimal(10,3) not null, ch20 char(20) not null ,vc varchar(20) not null, lvc long varchar not null,  blobCol blob(1000) not null,  clobCol clob(1000) not null)");
        s.executeUpdate("insert into c values(2,3,4,5.3,5.3,5.3,31.13,123456.123, 'one','one','one', cast(X'01ABCD' as blob(1000)), 'one')");
        s.executeUpdate("insert into c values(-32768,-2147483648, -9223372036854775808 ,1.2E-37, 2.225E-307, +2.225E-307,-56.12, -123456.123,'one','one','one', cast(X'01ABCD' as blob(1000)),'one')");
        rs = s.executeQuery("select * from c");
        expectedRows = new String [][] {{"2","3","4","5.3","5.3","5.3","31.13","123456.123","one                 ","one","one","01abcd","one"},
                {"-32768","-2147483648","-9223372036854775808","1.2E-37","2.225E-307","2.225E-307","-56.12","-123456.123","one                 ","one","one","01abcd","one"}};

        JDBC.assertFullResultSet(rs, expectedRows);
        s.executeUpdate("drop table c");
       
        // test large number of columns
        rs = s.executeQuery("values ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84)");
        expectedRows = new String[][] {{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84"}};
        JDBC.assertFullResultSet(rs, expectedRows);
        rs = s.executeQuery("values(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,91, 92, 93, 94, 95, 96, 97, 98, 99, 100)");
        expectedRows = new String[][] {{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100"}};
        JDBC.assertFullResultSet(rs, expectedRows);
       // test commit and rollback
        conn.setAutoCommit(false);
        s.executeUpdate("create table a (a int)");
        s.executeUpdate("insert into a values(1)");
        rs = s.executeQuery("select * from a");
        JDBC.assertFullResultSet(rs, new String [][] {{"1"}});
        conn.commit();
        s.executeUpdate("drop table a");
        conn.rollback();
        rs = s.executeQuery("select * from a");
        JDBC.assertFullResultSet(rs, new String [][] {{"1"}});
        s.executeUpdate("drop table a");
        conn.commit();            
    }
    
    
    public void testBugFixes() throws SQLException {
        Connection conn= getConnection();
        Statement s = conn.createStatement();
        // -- bug 4430 aliasinfo nullability problem
        ResultSet rs = s.executeQuery("select aliasinfo from sys.sysaliases where aliasinfo is null");
        JDBC.assertEmpty(rs);
        //-- test SQL Error with non-string arguments
        //-- Make sure connection still ok (Bug 4657)
        s.executeUpdate("create table a (a int)");
        assertStatementError("22003",s,"insert into a values(2342323423)");
        s.executeUpdate("drop table a");
      
        conn.setAutoCommit(false);
        
        // bug 4758 Store error does not return properly to client
        s.executeUpdate("create table t (i int)");
        s.executeUpdate("insert into t values(1)");
        conn.commit();
        s.executeUpdate("insert into t values(2)");
        conn.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
        Connection conn2 = openDefaultConnection();
        PreparedStatement ps2 = conn2.prepareStatement("select * from t");
        assertStatementError("40XL1",ps2);
        assertStatementError("40XL1",ps2);
        
        //-- Bug 5967 - Selecting from 2 lob columns w/ the first one having data of length 0
        Statement s2 = conn2.createStatement();
        s2.executeUpdate("create table t1 (c1 clob(10), c2 clob(10))");
        s2.executeUpdate("insert into t1 values ('', 'some clob')");
        rs = s.executeQuery("select * from t1");
        JDBC.assertFullResultSet(rs, new String[][]{{"","some clob"}});
        rs = s2.executeQuery("select c2 from t1");
        JDBC.assertFullResultSet(rs, new String[][]{{"some clob"}});
        s2.executeUpdate("drop table t1");
        conn2.commit();
        s2.close();
        ps2.close();
        conn2.close();
        
        s.executeUpdate("drop table t");
        s.close();
        conn.commit();
        conn.close();
    }

    public static Test suite() {
        Test suite = TestConfiguration.defaultSuite(SimpleTest.class);
        return DatabasePropertyTestSetup.setLockTimeouts(suite,3,3);
    }
}