001: /*
002:
003: Derby - Class org.apache.derbyTesting.functionTests.tests.lang.WiscMetaData
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to You under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021:
022: package org.apache.derbyTesting.functionTests.tests.lang;
023:
024: import org.apache.derby.vti.VTIMetaDataTemplate;
025:
026: import java.sql.Types;
027: import java.sql.SQLException;
028: import java.sql.ResultSetMetaData;
029:
030: /**
031: * This class gives the metadata for the VTI for loading the Wisconsin
032: * benchmark schema.
033: */
034: class WiscMetaData extends VTIMetaDataTemplate {
035:
036: public int getColumnCount() {
037: return 16;
038: }
039:
040: public int getColumnType(int column) throws SQLException {
041: switch (column) {
042: case 1:
043: case 2:
044: case 3:
045: case 4:
046: case 5:
047: case 6:
048: case 7:
049: case 8:
050: case 9:
051: case 10:
052: case 11:
053: case 12:
054: case 13:
055: return Types.INTEGER;
056:
057: case 14:
058: case 15:
059: case 16:
060: return Types.CHAR;
061:
062: default:
063: throw new SQLException("Invalid column number " + column);
064: }
065: }
066:
067: public int isNullable(int column) throws SQLException {
068: if (column < 1 || column > 16) {
069: throw new SQLException("isNullable: column number "
070: + column + " out of range.");
071: }
072:
073: return ResultSetMetaData.columnNoNulls;
074: }
075:
076: public String getColumnName(int column) throws SQLException {
077: switch (column) {
078: case 1:
079: return "unique1";
080:
081: case 2:
082: return "unique2";
083:
084: case 3:
085: return "two";
086:
087: case 4:
088: return "four";
089:
090: case 5:
091: return "ten";
092:
093: case 6:
094: return "twenty";
095:
096: case 7:
097: return "onePercent";
098:
099: case 8:
100: return "tenPercent";
101:
102: case 9:
103: return "twentyPercent";
104:
105: case 10:
106: return "fiftyPercent";
107:
108: case 11:
109: return "unique3";
110:
111: case 12:
112: return "evenOnePercent";
113:
114: case 13:
115: return "oddOnePercent";
116:
117: case 14:
118: return "stringu1";
119:
120: case 15:
121: return "stringu2";
122:
123: case 16:
124: return "string4";
125: }
126:
127: throw new SQLException("getColumnName: column number " + column
128: + " out of range.");
129: }
130:
131: public int getColumnDisplaySize(int column) throws SQLException {
132: if (column < 1 || column > 16) {
133: throw new SQLException(
134: "getColumnDisplaySize: column number " + column
135: + " out of range.");
136: }
137:
138: /* All columns up to 14 are ints, all columns after 14 are char(52) */
139: if (column < 14)
140: return 10;
141: else
142: return 52;
143: }
144: }
|