You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jv...@apache.org on 2010/07/30 02:10:51 UTC

svn commit: r980611 [3/4] - in /hadoop/hive/trunk: ./ jdbc/src/java/org/apache/hadoop/hive/jdbc/ jdbc/src/test/org/apache/hadoop/hive/jdbc/

Modified: hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSet.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSet.java?rev=980611&r1=980610&r2=980611&view=diff
==============================================================================
--- hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSet.java (original)
+++ hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSet.java Fri Jul 30 00:10:50 2010
@@ -1,2331 +0,0 @@
-/**
- * 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.hadoop.hive.jdbc;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.math.BigDecimal;
-import java.net.URL;
-import java.sql.Array;
-import java.sql.Blob;
-import java.sql.Clob;
-import java.sql.Date;
-import java.sql.NClob;
-import java.sql.Ref;
-import java.sql.ResultSetMetaData;
-import java.sql.RowId;
-import java.sql.SQLException;
-import java.sql.SQLWarning;
-import java.sql.SQLXML;
-import java.sql.Statement;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.Schema;
-import org.apache.hadoop.hive.serde.Constants;
-import org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe;
-import org.apache.hadoop.hive.service.HiveInterface;
-import org.apache.hadoop.io.BytesWritable;
-
-/**
- * HiveResultSet.
- *
- */
-public class HiveResultSet implements java.sql.ResultSet {
-  HiveInterface client;
-  ArrayList<?> row;
-  DynamicSerDe ds;
-  List<String> columnNames;
-  List<String> columnTypes;
-
-  SQLWarning warningChain = null;
-  boolean wasNull = false;
-  int maxRows = 0;
-  int rowsFetched = 0;
-
-  /**
-   *
-   */
-  @SuppressWarnings("unchecked")
-  public HiveResultSet(HiveInterface client, int maxRows) throws SQLException {
-    this.client = client;
-    row = new ArrayList();
-    this.maxRows = maxRows;
-    initDynamicSerde();
-  }
-
-  @SuppressWarnings("unchecked")
-  public HiveResultSet(HiveInterface client) throws SQLException {
-    this(client, 0);
-  }
-
-  /**
-   * Instantiate the dynamic serde used to deserialize the result row.
-   */
-  public void initDynamicSerde() throws SQLException {
-    try {
-      Schema fullSchema = client.getThriftSchema();
-      List<FieldSchema> schema = fullSchema.getFieldSchemas();
-      columnNames = new ArrayList<String>();
-      columnTypes = new ArrayList<String>();
-
-      String serDDL;
-
-      if ((schema != null) && (!schema.isEmpty())) {
-        serDDL = new String("struct result { ");
-        for (int pos = 0; pos < schema.size(); pos++) {
-          if (pos != 0) {
-            serDDL = serDDL.concat(",");
-          }
-          columnTypes.add(schema.get(pos).getType());
-          columnNames.add(schema.get(pos).getName());
-          serDDL = serDDL.concat(schema.get(pos).getType());
-          serDDL = serDDL.concat(" ");
-          serDDL = serDDL.concat(schema.get(pos).getName());
-        }
-        serDDL = serDDL.concat("}");
-      } else {
-        serDDL = new String("struct result { string empty }");
-      }
-
-      ds = new DynamicSerDe();
-      Properties dsp = new Properties();
-      dsp.setProperty(Constants.SERIALIZATION_FORMAT,
-          org.apache.hadoop.hive.serde2.thrift.TCTLSeparatedProtocol.class
-          .getName());
-      dsp.setProperty(
-          org.apache.hadoop.hive.metastore.api.Constants.META_TABLE_NAME,
-          "result");
-      dsp.setProperty(Constants.SERIALIZATION_DDL, serDDL);
-      dsp.setProperty(Constants.SERIALIZATION_LIB, ds.getClass().toString());
-      dsp.setProperty(Constants.FIELD_DELIM, "9");
-      ds.initialize(new Configuration(), dsp);
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      throw new SQLException("Could not create ResultSet: " + ex.getMessage());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#absolute(int)
-   */
-
-  public boolean absolute(int row) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#afterLast()
-   */
-
-  public void afterLast() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#beforeFirst()
-   */
-
-  public void beforeFirst() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#cancelRowUpdates()
-   */
-
-  public void cancelRowUpdates() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#clearWarnings()
-   */
-
-  public void clearWarnings() throws SQLException {
-    warningChain = null;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#close()
-   */
-
-  public void close() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#deleteRow()
-   */
-
-  public void deleteRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#findColumn(java.lang.String)
-   */
-
-  public int findColumn(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#first()
-   */
-
-  public boolean first() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getArray(int)
-   */
-
-  public Array getArray(int i) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getArray(java.lang.String)
-   */
-
-  public Array getArray(String colName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getAsciiStream(int)
-   */
-
-  public InputStream getAsciiStream(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getAsciiStream(java.lang.String)
-   */
-
-  public InputStream getAsciiStream(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(int)
-   */
-
-  public BigDecimal getBigDecimal(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(java.lang.String)
-   */
-
-  public BigDecimal getBigDecimal(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(int, int)
-   */
-
-  public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(java.lang.String, int)
-   */
-
-  public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBinaryStream(int)
-   */
-
-  public InputStream getBinaryStream(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBinaryStream(java.lang.String)
-   */
-
-  public InputStream getBinaryStream(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBlob(int)
-   */
-
-  public Blob getBlob(int i) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBlob(java.lang.String)
-   */
-
-  public Blob getBlob(String colName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBoolean(int)
-   */
-
-  public boolean getBoolean(int columnIndex) throws SQLException {
-    Object obj = getObject(columnIndex);
-    if (Number.class.isInstance(obj)) {
-      return ((Number) obj).intValue() != 0;
-    }
-    throw new SQLException("Cannot convert column " + columnIndex
-        + " to boolean");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBoolean(java.lang.String)
-   */
-
-  public boolean getBoolean(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getByte(int)
-   */
-
-  public byte getByte(int columnIndex) throws SQLException {
-    Object obj = getObject(columnIndex);
-    if (Number.class.isInstance(obj)) {
-      return ((Number) obj).byteValue();
-    }
-    throw new SQLException("Cannot convert column " + columnIndex + " to byte");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getByte(java.lang.String)
-   */
-
-  public byte getByte(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBytes(int)
-   */
-
-  public byte[] getBytes(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBytes(java.lang.String)
-   */
-
-  public byte[] getBytes(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getCharacterStream(int)
-   */
-
-  public Reader getCharacterStream(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getCharacterStream(java.lang.String)
-   */
-
-  public Reader getCharacterStream(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getClob(int)
-   */
-
-  public Clob getClob(int i) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getClob(java.lang.String)
-   */
-
-  public Clob getClob(String colName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getConcurrency()
-   */
-
-  public int getConcurrency() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getCursorName()
-   */
-
-  public String getCursorName() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(int)
-   */
-
-  public Date getDate(int columnIndex) throws SQLException {
-    Object obj = getObject(columnIndex);
-    if (obj == null) {
-      return null;
-    }
-
-    try {
-      return Date.valueOf((String) obj);
-    } catch (Exception e) {
-      throw new SQLException("Cannot convert column " + columnIndex
-          + " to date: " + e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(java.lang.String)
-   */
-
-  public Date getDate(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(int, java.util.Calendar)
-   */
-
-  public Date getDate(int columnIndex, Calendar cal) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(java.lang.String, java.util.Calendar)
-   */
-
-  public Date getDate(String columnName, Calendar cal) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDouble(int)
-   */
-
-  public double getDouble(int columnIndex) throws SQLException {
-    try {
-      Object obj = getObject(columnIndex);
-      if (Number.class.isInstance(obj)) {
-        return ((Number) obj).doubleValue();
-      }
-      throw new Exception("Illegal conversion");
-    } catch (Exception e) {
-      throw new SQLException("Cannot convert column " + columnIndex
-          + " to double: " + e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDouble(java.lang.String)
-   */
-
-  public double getDouble(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFetchDirection()
-   */
-
-  public int getFetchDirection() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFetchSize()
-   */
-
-  public int getFetchSize() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFloat(int)
-   */
-
-  public float getFloat(int columnIndex) throws SQLException {
-    try {
-      Object obj = getObject(columnIndex);
-      if (Number.class.isInstance(obj)) {
-        return ((Number) obj).floatValue();
-      }
-      throw new Exception("Illegal conversion");
-    } catch (Exception e) {
-      throw new SQLException("Cannot convert column " + columnIndex
-          + " to float: " + e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFloat(java.lang.String)
-   */
-
-  public float getFloat(String columnName) throws SQLException {
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getHoldability()
-   */
-
-  public int getHoldability() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getInt(int)
-   */
-
-  public int getInt(int columnIndex) throws SQLException {
-    try {
-      Object obj = getObject(columnIndex);
-      if (Number.class.isInstance(obj)) {
-        return ((Number) obj).intValue();
-      }
-      throw new Exception("Illegal conversion");
-    } catch (Exception e) {
-      throw new SQLException("Cannot convert column " + columnIndex
-          + " to integer" + e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getInt(java.lang.String)
-   */
-
-  public int getInt(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getLong(int)
-   */
-
-  public long getLong(int columnIndex) throws SQLException {
-    try {
-      Object obj = getObject(columnIndex);
-      if (Number.class.isInstance(obj)) {
-        return ((Number) obj).longValue();
-      }
-      throw new Exception("Illegal conversion");
-    } catch (Exception e) {
-      throw new SQLException("Cannot convert column " + columnIndex
-          + " to long: " + e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getLong(java.lang.String)
-   */
-
-  public long getLong(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getMetaData()
-   */
-
-  public ResultSetMetaData getMetaData() throws SQLException {
-    return new HiveResultSetMetaData(columnNames, columnTypes);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNCharacterStream(int)
-   */
-
-  public Reader getNCharacterStream(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNCharacterStream(java.lang.String)
-   */
-
-  public Reader getNCharacterStream(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNClob(int)
-   */
-
-  public NClob getNClob(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNClob(java.lang.String)
-   */
-
-  public NClob getNClob(String columnLabel) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNString(int)
-   */
-
-  public String getNString(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNString(java.lang.String)
-   */
-
-  public String getNString(String columnLabel) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(int)
-   */
-
-  public Object getObject(int columnIndex) throws SQLException {
-    if (row == null) {
-      throw new SQLException("No row found.");
-    }
-
-    if (columnIndex > row.size()) {
-      throw new SQLException("Invalid columnIndex: " + columnIndex);
-    }
-
-    try {
-      wasNull = false;
-      if (row.get(columnIndex - 1) == null) {
-        wasNull = true;
-      }
-
-      return row.get(columnIndex - 1);
-    } catch (Exception e) {
-      throw new SQLException(e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(java.lang.String)
-   */
-
-  public Object getObject(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(int, java.util.Map)
-   */
-
-  public Object getObject(int i, Map<String, Class<?>> map) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(java.lang.String, java.util.Map)
-   */
-
-  public Object getObject(String colName, Map<String, Class<?>> map) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRef(int)
-   */
-
-  public Ref getRef(int i) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRef(java.lang.String)
-   */
-
-  public Ref getRef(String colName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRow()
-   */
-
-  public int getRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRowId(int)
-   */
-
-  public RowId getRowId(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRowId(java.lang.String)
-   */
-
-  public RowId getRowId(String columnLabel) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getSQLXML(int)
-   */
-
-  public SQLXML getSQLXML(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getSQLXML(java.lang.String)
-   */
-
-  public SQLXML getSQLXML(String columnLabel) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getShort(int)
-   */
-
-  public short getShort(int columnIndex) throws SQLException {
-    try {
-      Object obj = getObject(columnIndex);
-      if (Number.class.isInstance(obj)) {
-        return ((Number) obj).shortValue();
-      }
-      throw new Exception("Illegal conversion");
-    } catch (Exception e) {
-      throw new SQLException("Cannot convert column " + columnIndex
-          + " to short: " + e.toString());
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getShort(java.lang.String)
-   */
-
-  public short getShort(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getStatement()
-   */
-
-  public Statement getStatement() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /**
-   * @param columnIndex
-   *          - the first column is 1, the second is 2, ...
-   * @see java.sql.ResultSet#getString(int)
-   */
-
-  public String getString(int columnIndex) throws SQLException {
-    // Column index starts from 1, not 0.
-    Object obj = getObject(columnIndex);
-    if (obj == null) {
-      return null;
-    }
-
-    return obj.toString();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getString(java.lang.String)
-   */
-
-  public String getString(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(int)
-   */
-
-  public Time getTime(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(java.lang.String)
-   */
-
-  public Time getTime(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(int, java.util.Calendar)
-   */
-
-  public Time getTime(int columnIndex, Calendar cal) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(java.lang.String, java.util.Calendar)
-   */
-
-  public Time getTime(String columnName, Calendar cal) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(int)
-   */
-
-  public Timestamp getTimestamp(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(java.lang.String)
-   */
-
-  public Timestamp getTimestamp(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar)
-   */
-
-  public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(java.lang.String, java.util.Calendar)
-   */
-
-  public Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getType()
-   */
-
-  public int getType() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getURL(int)
-   */
-
-  public URL getURL(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getURL(java.lang.String)
-   */
-
-  public URL getURL(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getUnicodeStream(int)
-   */
-
-  public InputStream getUnicodeStream(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getUnicodeStream(java.lang.String)
-   */
-
-  public InputStream getUnicodeStream(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getWarnings()
-   */
-
-  public SQLWarning getWarnings() throws SQLException {
-    return warningChain;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#insertRow()
-   */
-
-  public void insertRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isAfterLast()
-   */
-
-  public boolean isAfterLast() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isBeforeFirst()
-   */
-
-  public boolean isBeforeFirst() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isClosed()
-   */
-
-  public boolean isClosed() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isFirst()
-   */
-
-  public boolean isFirst() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isLast()
-   */
-
-  public boolean isLast() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#last()
-   */
-
-  public boolean last() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#moveToCurrentRow()
-   */
-
-  public void moveToCurrentRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#moveToInsertRow()
-   */
-
-  public void moveToInsertRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /**
-   * Moves the cursor down one row from its current position.
-   * 
-   * @see java.sql.ResultSet#next()
-   * @throws SQLException
-   *           if a database access error occurs.
-   */
-
-  public boolean next() throws SQLException {
-    if (maxRows > 0 && rowsFetched >= maxRows) {
-      return false;
-    }
-
-    String rowStr = "";
-    try {
-      rowStr = (String) client.fetchOne();
-      rowsFetched++;
-      if (!rowStr.equals("")) {
-        Object o = ds.deserialize(new BytesWritable(rowStr.getBytes()));
-        row = (ArrayList<?>) o;
-      }
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      throw new SQLException("Error retrieving next row");
-    }
-    // NOTE: fetchOne dosn't throw new SQLException("Method not supported").
-    return !rowStr.equals("");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#previous()
-   */
-
-  public boolean previous() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#refreshRow()
-   */
-
-  public void refreshRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#relative(int)
-   */
-
-  public boolean relative(int rows) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#rowDeleted()
-   */
-
-  public boolean rowDeleted() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#rowInserted()
-   */
-
-  public boolean rowInserted() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#rowUpdated()
-   */
-
-  public boolean rowUpdated() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#setFetchDirection(int)
-   */
-
-  public void setFetchDirection(int direction) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#setFetchSize(int)
-   */
-
-  public void setFetchSize(int rows) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateArray(int, java.sql.Array)
-   */
-
-  public void updateArray(int columnIndex, Array x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateArray(java.lang.String, java.sql.Array)
-   */
-
-  public void updateArray(String columnName, Array x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream)
-   */
-
-  public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(java.lang.String,
-   * java.io.InputStream)
-   */
-
-  public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, int)
-   */
-
-  public void updateAsciiStream(int columnIndex, InputStream x, int length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(java.lang.String,
-   * java.io.InputStream, int)
-   */
-
-  public void updateAsciiStream(String columnName, InputStream x, int length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, long)
-   */
-
-  public void updateAsciiStream(int columnIndex, InputStream x, long length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(java.lang.String,
-   * java.io.InputStream, long)
-   */
-
-  public void updateAsciiStream(String columnLabel, InputStream x, long length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBigDecimal(int, java.math.BigDecimal)
-   */
-
-  public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBigDecimal(java.lang.String,
-   * java.math.BigDecimal)
-   */
-
-  public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream)
-   */
-
-  public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(java.lang.String,
-   * java.io.InputStream)
-   */
-
-  public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, int)
-   */
-
-  public void updateBinaryStream(int columnIndex, InputStream x, int length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(java.lang.String,
-   * java.io.InputStream, int)
-   */
-
-  public void updateBinaryStream(String columnName, InputStream x, int length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, long)
-   */
-
-  public void updateBinaryStream(int columnIndex, InputStream x, long length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(java.lang.String,
-   * java.io.InputStream, long)
-   */
-
-  public void updateBinaryStream(String columnLabel, InputStream x, long length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(int, java.sql.Blob)
-   */
-
-  public void updateBlob(int columnIndex, Blob x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(java.lang.String, java.sql.Blob)
-   */
-
-  public void updateBlob(String columnName, Blob x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(int, java.io.InputStream)
-   */
-
-  public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(java.lang.String, java.io.InputStream)
-   */
-
-  public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(int, java.io.InputStream, long)
-   */
-
-  public void updateBlob(int columnIndex, InputStream inputStream, long length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(java.lang.String, java.io.InputStream,
-   * long)
-   */
-
-  public void updateBlob(String columnLabel, InputStream inputStream,
-      long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBoolean(int, boolean)
-   */
-
-  public void updateBoolean(int columnIndex, boolean x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBoolean(java.lang.String, boolean)
-   */
-
-  public void updateBoolean(String columnName, boolean x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateByte(int, byte)
-   */
-
-  public void updateByte(int columnIndex, byte x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateByte(java.lang.String, byte)
-   */
-
-  public void updateByte(String columnName, byte x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBytes(int, byte[])
-   */
-
-  public void updateBytes(int columnIndex, byte[] x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBytes(java.lang.String, byte[])
-   */
-
-  public void updateBytes(String columnName, byte[] x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader)
-   */
-
-  public void updateCharacterStream(int columnIndex, Reader x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(java.lang.String,
-   * java.io.Reader)
-   */
-
-  public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, int)
-   */
-
-  public void updateCharacterStream(int columnIndex, Reader x, int length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(java.lang.String,
-   * java.io.Reader, int)
-   */
-
-  public void updateCharacterStream(String columnName, Reader reader, int length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, long)
-   */
-
-  public void updateCharacterStream(int columnIndex, Reader x, long length)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(java.lang.String,
-   * java.io.Reader, long)
-   */
-
-  public void updateCharacterStream(String columnLabel, Reader reader,
-      long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(int, java.sql.Clob)
-   */
-
-  public void updateClob(int columnIndex, Clob x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(java.lang.String, java.sql.Clob)
-   */
-
-  public void updateClob(String columnName, Clob x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(int, java.io.Reader)
-   */
-
-  public void updateClob(int columnIndex, Reader reader) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(java.lang.String, java.io.Reader)
-   */
-
-  public void updateClob(String columnLabel, Reader reader) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(int, java.io.Reader, long)
-   */
-
-  public void updateClob(int columnIndex, Reader reader, long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(java.lang.String, java.io.Reader, long)
-   */
-
-  public void updateClob(String columnLabel, Reader reader, long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDate(int, java.sql.Date)
-   */
-
-  public void updateDate(int columnIndex, Date x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDate(java.lang.String, java.sql.Date)
-   */
-
-  public void updateDate(String columnName, Date x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDouble(int, double)
-   */
-
-  public void updateDouble(int columnIndex, double x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDouble(java.lang.String, double)
-   */
-
-  public void updateDouble(String columnName, double x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateFloat(int, float)
-   */
-
-  public void updateFloat(int columnIndex, float x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateFloat(java.lang.String, float)
-   */
-
-  public void updateFloat(String columnName, float x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateInt(int, int)
-   */
-
-  public void updateInt(int columnIndex, int x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateInt(java.lang.String, int)
-   */
-
-  public void updateInt(String columnName, int x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateLong(int, long)
-   */
-
-  public void updateLong(int columnIndex, long x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateLong(java.lang.String, long)
-   */
-
-  public void updateLong(String columnName, long x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(int, java.io.Reader)
-   */
-
-  public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(java.lang.String,
-   * java.io.Reader)
-   */
-
-  public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(int, java.io.Reader, long)
-   */
-
-  public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(java.lang.String,
-   * java.io.Reader, long)
-   */
-
-  public void updateNCharacterStream(String columnLabel, Reader reader,
-      long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(int, java.sql.NClob)
-   */
-
-  public void updateNClob(int columnIndex, NClob clob) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(java.lang.String, java.sql.NClob)
-   */
-
-  public void updateNClob(String columnLabel, NClob clob) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(int, java.io.Reader)
-   */
-
-  public void updateNClob(int columnIndex, Reader reader) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(java.lang.String, java.io.Reader)
-   */
-
-  public void updateNClob(String columnLabel, Reader reader) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(int, java.io.Reader, long)
-   */
-
-  public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(java.lang.String, java.io.Reader, long)
-   */
-
-  public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNString(int, java.lang.String)
-   */
-
-  public void updateNString(int columnIndex, String string) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNString(java.lang.String, java.lang.String)
-   */
-
-  public void updateNString(String columnLabel, String string) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNull(int)
-   */
-
-  public void updateNull(int columnIndex) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNull(java.lang.String)
-   */
-
-  public void updateNull(String columnName) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(int, java.lang.Object)
-   */
-
-  public void updateObject(int columnIndex, Object x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object)
-   */
-
-  public void updateObject(String columnName, Object x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(int, java.lang.Object, int)
-   */
-
-  public void updateObject(int columnIndex, Object x, int scale) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object,
-   * int)
-   */
-
-  public void updateObject(String columnName, Object x, int scale) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRef(int, java.sql.Ref)
-   */
-
-  public void updateRef(int columnIndex, Ref x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRef(java.lang.String, java.sql.Ref)
-   */
-
-  public void updateRef(String columnName, Ref x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRow()
-   */
-
-  public void updateRow() throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRowId(int, java.sql.RowId)
-   */
-
-  public void updateRowId(int columnIndex, RowId x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRowId(java.lang.String, java.sql.RowId)
-   */
-
-  public void updateRowId(String columnLabel, RowId x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateSQLXML(int, java.sql.SQLXML)
-   */
-
-  public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateSQLXML(java.lang.String, java.sql.SQLXML)
-   */
-
-  public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateShort(int, short)
-   */
-
-  public void updateShort(int columnIndex, short x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateShort(java.lang.String, short)
-   */
-
-  public void updateShort(String columnName, short x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateString(int, java.lang.String)
-   */
-
-  public void updateString(int columnIndex, String x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateString(java.lang.String, java.lang.String)
-   */
-
-  public void updateString(String columnName, String x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTime(int, java.sql.Time)
-   */
-
-  public void updateTime(int columnIndex, Time x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTime(java.lang.String, java.sql.Time)
-   */
-
-  public void updateTime(String columnName, Time x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTimestamp(int, java.sql.Timestamp)
-   */
-
-  public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTimestamp(java.lang.String,
-   * java.sql.Timestamp)
-   */
-
-  public void updateTimestamp(String columnName, Timestamp x) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#wasNull()
-   */
-
-  public boolean wasNull() throws SQLException {
-    return wasNull;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.Wrapper#isWrapperFor(java.lang.Class)
-   */
-
-  public boolean isWrapperFor(Class<?> iface) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.Wrapper#unwrap(java.lang.Class)
-   */
-
-  public <T> T unwrap(Class<T> iface) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new SQLException("Method not supported");
-  }
-
-}

Modified: hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java?rev=980611&r1=980610&r2=980611&view=diff
==============================================================================
--- hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java (original)
+++ hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java Fri Jul 30 00:10:50 2010
@@ -30,8 +30,8 @@ import org.apache.hadoop.hive.serde.Cons
  *
  */
 public class HiveResultSetMetaData implements java.sql.ResultSetMetaData {
-  List<String> columnNames;
-  List<String> columnTypes;
+  private List<String> columnNames;
+  private List<String> columnTypes;
 
   public HiveResultSetMetaData(List<String> columnNames,
       List<String> columnTypes) {
@@ -39,46 +39,19 @@ public class HiveResultSetMetaData imple
     this.columnTypes = columnTypes;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getCatalogName(int)
-   */
-
   public String getCatalogName(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnClassName(int)
-   */
-
   public String getColumnClassName(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnCount()
-   */
-
   public int getColumnCount() throws SQLException {
     return columnNames.size();
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnDisplaySize(int)
-   */
-
   public int getColumnDisplaySize(int column) throws SQLException {
-
     // taking a stab at appropriate values
     switch (getColumnType(column)) {
     case Types.VARCHAR:
@@ -96,33 +69,14 @@ public class HiveResultSetMetaData imple
     }
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnLabel(int)
-   */
-
   public String getColumnLabel(int column) throws SQLException {
-    // TODO Auto-generated method stub
     return columnNames.get(column - 1);
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnName(int)
-   */
-
   public String getColumnName(int column) throws SQLException {
     return columnNames.get(column - 1);
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnType(int)
-   */
-
   public int getColumnType(int column) throws SQLException {
     if (columnTypes == null) {
       throw new SQLException(
@@ -137,29 +91,34 @@ public class HiveResultSetMetaData imple
     String type = columnTypes.get(column - 1);
 
     // we need to convert the thrift type to the SQL type
-    // TODO: this would be better handled in an enum
-    if ("string".equals(type)) {
+    return hiveTypeToSqlType(type);
+  }
+
+  /**
+   * Convert hive types to sql types.
+   * @param type
+   * @return Integer java.sql.Types values
+   * @throws SQLException
+   */
+  public static Integer hiveTypeToSqlType(String type) throws SQLException {
+    if ("string".equalsIgnoreCase(type)) {
       return Types.VARCHAR;
-    } else if ("bool".equals(type)) {
+    } else if ("bool".equalsIgnoreCase(type) || "boolean".equalsIgnoreCase(type)) {
       return Types.BOOLEAN;
-    } else if ("double".equals(type)) {
+    } else if ("float".equalsIgnoreCase(type)) {
+      return Types.FLOAT;
+    } else if ("double".equalsIgnoreCase(type)) {
       return Types.DOUBLE;
-    } else if ("byte".equals(type)) {
+    } else if ("byte".equalsIgnoreCase(type) || "tinyint".equalsIgnoreCase(type)) {
       return Types.TINYINT;
-    } else if ("i32".equals(type)) {
+    } else if ("i32".equalsIgnoreCase(type) || "int".equalsIgnoreCase(type)) {
       return Types.INTEGER;
-    } else if ("i64".equals(type)) {
+    } else if ("i64".equalsIgnoreCase(type) || "bigint".equalsIgnoreCase(type)) {
       return Types.BIGINT;
     }
-
-    throw new SQLException("Inrecognized column type: " + type);
+     throw new SQLException("Unrecognized column type: " + type);
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getColumnTypeName(int)
-   */
 
   public String getColumnTypeName(int column) throws SQLException {
     if (columnTypes == null) {
@@ -174,29 +133,23 @@ public class HiveResultSetMetaData imple
     // we need to convert the thrift type to the SQL type name
     // TODO: this would be better handled in an enum
     String type = columnTypes.get(column - 1);
-    if ("string".equals(type)) {
+    if ("string".equalsIgnoreCase(type)) {
       return Constants.STRING_TYPE_NAME;
-    } else if ("double".equals(type)) {
+    } else if ("double".equalsIgnoreCase(type)) {
       return Constants.DOUBLE_TYPE_NAME;
-    } else if ("bool".equals(type)) {
+    } else if ("bool".equalsIgnoreCase(type)) {
       return Constants.BOOLEAN_TYPE_NAME;
-    } else if ("byte".equals(type)) {
+    } else if ("byte".equalsIgnoreCase(type)) {
       return Constants.TINYINT_TYPE_NAME;
-    } else if ("i32".equals(type)) {
+    } else if ("i32".equalsIgnoreCase(type)) {
       return Constants.INT_TYPE_NAME;
-    } else if ("i64".equals(type)) {
+    } else if ("i64".equalsIgnoreCase(type)) {
       return Constants.BIGINT_TYPE_NAME;
     }
 
     throw new SQLException("Inrecognized column type: " + type);
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getPrecision(int)
-   */
-
   public int getPrecision(int column) throws SQLException {
     if (Types.DOUBLE == getColumnType(column)) {
       return -1; // Do we have a precision limit?
@@ -205,12 +158,6 @@ public class HiveResultSetMetaData imple
     return 0;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getScale(int)
-   */
-
   public int getScale(int column) throws SQLException {
     if (Types.DOUBLE == getColumnType(column)) {
       return -1; // Do we have a scale limit?
@@ -219,146 +166,58 @@ public class HiveResultSetMetaData imple
     return 0;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getSchemaName(int)
-   */
-
   public String getSchemaName(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#getTableName(int)
-   */
-
   public String getTableName(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isAutoIncrement(int)
-   */
-
   public boolean isAutoIncrement(int column) throws SQLException {
     // Hive doesn't have an auto-increment concept
     return false;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isCaseSensitive(int)
-   */
-
   public boolean isCaseSensitive(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isCurrency(int)
-   */
-
   public boolean isCurrency(int column) throws SQLException {
     // Hive doesn't support a currency type
     return false;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isDefinitelyWritable(int)
-   */
-
   public boolean isDefinitelyWritable(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isNullable(int)
-   */
-
   public int isNullable(int column) throws SQLException {
     // Hive doesn't have the concept of not-null
     return ResultSetMetaData.columnNullable;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isReadOnly(int)
-   */
-
   public boolean isReadOnly(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isSearchable(int)
-   */
-
   public boolean isSearchable(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isSigned(int)
-   */
-
   public boolean isSigned(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSetMetaData#isWritable(int)
-   */
-
   public boolean isWritable(int column) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.Wrapper#isWrapperFor(java.lang.Class)
-   */
-
   public boolean isWrapperFor(Class<?> iface) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.Wrapper#unwrap(java.lang.Class)
-   */
-
   public <T> T unwrap(Class<T> iface) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 

Modified: hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveStatement.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveStatement.java?rev=980611&r1=980610&r2=980611&view=diff
==============================================================================
--- hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveStatement.java (original)
+++ hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveStatement.java Fri Jul 30 00:10:50 2010
@@ -31,8 +31,8 @@ import org.apache.hadoop.hive.service.Hi
  *
  */
 public class HiveStatement implements java.sql.Statement {
-  JdbcSessionState session;
-  HiveInterface client;
+  private JdbcSessionState session;
+  private HiveInterface client;
   /**
    * We need to keep a reference to the result set to support the following:
    * <code>
@@ -40,22 +40,22 @@ public class HiveStatement implements ja
    * statement.getResultSet();
    * </code>.
    */
-  ResultSet resultSet = null;
+  private ResultSet resultSet = null;
 
   /**
    * The maximum number of rows this statement should return (0 => all rows).
    */
-  int maxRows = 0;
+  private int maxRows = 0;
 
   /**
    * Add SQLWarnings to the warningChain if needed.
    */
-  SQLWarning warningChain = null;
+  private SQLWarning warningChain = null;
 
   /**
    * Keep state so we can fail certain calls made after close().
    */
-  boolean isClosed = false;
+  private boolean isClosed = false;
 
   /**
    *
@@ -72,7 +72,6 @@ public class HiveStatement implements ja
    */
 
   public void addBatch(String sql) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -83,7 +82,6 @@ public class HiveStatement implements ja
    */
 
   public void cancel() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -94,7 +92,6 @@ public class HiveStatement implements ja
    */
 
   public void clearBatch() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -115,7 +112,6 @@ public class HiveStatement implements ja
    */
 
   public void close() throws SQLException {
-    // TODO: how to properly shut down the client?
     client = null;
     resultSet = null;
     isClosed = true;
@@ -142,7 +138,6 @@ public class HiveStatement implements ja
    */
 
   public boolean execute(String sql, int autoGeneratedKeys) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -153,7 +148,6 @@ public class HiveStatement implements ja
    */
 
   public boolean execute(String sql, int[] columnIndexes) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -164,7 +158,6 @@ public class HiveStatement implements ja
    */
 
   public boolean execute(String sql, String[] columnNames) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -175,7 +168,6 @@ public class HiveStatement implements ja
    */
 
   public int[] executeBatch() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -198,7 +190,7 @@ public class HiveStatement implements ja
     } catch (Exception ex) {
       throw new SQLException(ex.toString(), "08S01");
     }
-    resultSet = new HiveResultSet(client, maxRows);
+    resultSet = new HiveQueryResultSet(client, maxRows);
     return resultSet;
   }
 
@@ -224,7 +216,6 @@ public class HiveStatement implements ja
    */
 
   public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -235,7 +226,6 @@ public class HiveStatement implements ja
    */
 
   public int executeUpdate(String sql, int[] columnIndexes) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -246,7 +236,6 @@ public class HiveStatement implements ja
    */
 
   public int executeUpdate(String sql, String[] columnNames) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -257,7 +246,6 @@ public class HiveStatement implements ja
    */
 
   public Connection getConnection() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -268,7 +256,6 @@ public class HiveStatement implements ja
    */
 
   public int getFetchDirection() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -279,7 +266,6 @@ public class HiveStatement implements ja
    */
 
   public int getFetchSize() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -290,7 +276,6 @@ public class HiveStatement implements ja
    */
 
   public ResultSet getGeneratedKeys() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -301,7 +286,6 @@ public class HiveStatement implements ja
    */
 
   public int getMaxFieldSize() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -322,7 +306,6 @@ public class HiveStatement implements ja
    */
 
   public boolean getMoreResults() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -333,7 +316,6 @@ public class HiveStatement implements ja
    */
 
   public boolean getMoreResults(int current) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -344,7 +326,6 @@ public class HiveStatement implements ja
    */
 
   public int getQueryTimeout() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -365,7 +346,6 @@ public class HiveStatement implements ja
    */
 
   public int getResultSetConcurrency() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -376,7 +356,6 @@ public class HiveStatement implements ja
    */
 
   public int getResultSetHoldability() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -387,7 +366,6 @@ public class HiveStatement implements ja
    */
 
   public int getResultSetType() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -428,7 +406,6 @@ public class HiveStatement implements ja
    */
 
   public boolean isPoolable() throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -439,7 +416,6 @@ public class HiveStatement implements ja
    */
 
   public void setCursorName(String name) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -450,7 +426,6 @@ public class HiveStatement implements ja
    */
 
   public void setEscapeProcessing(boolean enable) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -461,7 +436,6 @@ public class HiveStatement implements ja
    */
 
   public void setFetchDirection(int direction) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -472,7 +446,6 @@ public class HiveStatement implements ja
    */
 
   public void setFetchSize(int rows) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -483,7 +456,6 @@ public class HiveStatement implements ja
    */
 
   public void setMaxFieldSize(int max) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -507,7 +479,6 @@ public class HiveStatement implements ja
    */
 
   public void setPoolable(boolean poolable) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -518,7 +489,6 @@ public class HiveStatement implements ja
    */
 
   public void setQueryTimeout(int seconds) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -529,7 +499,6 @@ public class HiveStatement implements ja
    */
 
   public boolean isWrapperFor(Class<?> iface) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 
@@ -540,7 +509,6 @@ public class HiveStatement implements ja
    */
 
   public <T> T unwrap(Class<T> iface) throws SQLException {
-    // TODO Auto-generated method stub
     throw new SQLException("Method not supported");
   }
 

Added: hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcColumn.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcColumn.java?rev=980611&view=auto
==============================================================================
--- hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcColumn.java (added)
+++ hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcColumn.java Fri Jul 30 00:10:50 2010
@@ -0,0 +1,123 @@
+/**
+ * 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.hadoop.hive.jdbc;
+
+import java.sql.SQLException;
+
+/**
+ * Column metadata.
+ */
+public class JdbcColumn {
+  private String columnName;
+  private String tableName;
+  private String tableCatalog;
+  private String type;
+  private String comment;
+  private int ordinalPos;
+
+  JdbcColumn(String columnName, String tableName, String tableCatalog
+          , String type, String comment, int ordinalPos) {
+    this.columnName = columnName;
+    this.tableName = tableName;
+    this.tableCatalog = tableCatalog;
+    this.type = type;
+    this.comment = comment;
+    this.ordinalPos = ordinalPos;
+  }
+
+  public String getColumnName() {
+    return columnName;
+  }
+
+  public String getTableName() {
+    return tableName;
+  }
+
+  public String getTableCatalog() {
+    return tableCatalog;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public Integer getSqlType() throws SQLException {
+    return HiveResultSetMetaData.hiveTypeToSqlType(type);
+  }
+
+  public Integer getColumnSize() {
+    if (type.equalsIgnoreCase("string")) {
+      return Integer.MAX_VALUE;
+    } else if (type.equalsIgnoreCase("tinyint")) {
+      return 3;
+    } else if (type.equalsIgnoreCase("smallint")) {
+      return 5;
+    } else if (type.equalsIgnoreCase("int")) {
+      return 10;
+    } else if (type.equalsIgnoreCase("bigint")) {
+      return 19;
+    } else if (type.equalsIgnoreCase("float")) {
+      return 12;
+    } else if (type.equalsIgnoreCase("double")) {
+      return 22;
+    } else { // anything else including boolean is null
+      return null;
+    }
+  }
+
+  public Integer getNumPrecRadix() {
+    if (type.equalsIgnoreCase("tinyint")) {
+      return 10;
+    } else if (type.equalsIgnoreCase("smallint")) {
+      return 10;
+    } else if (type.equalsIgnoreCase("int")) {
+      return 10;
+    } else if (type.equalsIgnoreCase("bigint")) {
+      return 10;
+    } else if (type.equalsIgnoreCase("float")) {
+      return 2;
+    } else if (type.equalsIgnoreCase("double")) {
+      return 2;
+    } else { // anything else including boolean and string is null
+      return null;
+    }
+  }
+
+  public Integer getDecimalDigits() {
+    if (type.equalsIgnoreCase("tinyint")) {
+      return 0;
+    } else if (type.equalsIgnoreCase("smallint")) {
+      return 0;
+    } else if (type.equalsIgnoreCase("int")) {
+      return 0;
+    } else if (type.equalsIgnoreCase("bigint")) {
+      return 0;
+    } else { // anything else including float and double is null
+      return null;
+    }
+  }
+
+  public String getComment() {
+    return comment;
+  }
+
+  public int getOrdinalPos() {
+    return ordinalPos;
+  }
+}

Added: hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcTable.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcTable.java?rev=980611&view=auto
==============================================================================
--- hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcTable.java (added)
+++ hadoop/hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/JdbcTable.java Fri Jul 30 00:10:50 2010
@@ -0,0 +1,58 @@
+/**
+ * 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.hadoop.hive.jdbc;
+
+import java.sql.SQLException;
+
+/**
+ * Table metadata.
+ */
+public class JdbcTable {
+  private String tableCatalog;
+  private String tableName;
+  private String type;
+  private String comment;
+
+  public JdbcTable(String tableCatalog, String tableName, String type, String comment) {
+    this.tableCatalog = tableCatalog;
+    this.tableName = tableName;
+    this.type = type;
+    this.comment = comment;
+  }
+
+  public String getTableCatalog() {
+    return tableCatalog;
+  }
+
+  public String getTableName() {
+    return tableName;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public String getSqlTableType() throws SQLException {
+    return HiveDatabaseMetaData.toJdbcTableType(type);
+  }
+
+  public String getComment() {
+    return comment;
+  }
+}