tajo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hyun...@apache.org
Subject [12/51] [partial] TAJO-22: The package prefix should be org.apache.tajo. (DaeMyung Kang via hyunsik)
Date Tue, 02 Jul 2013 14:16:06 GMT
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetImpl.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetImpl.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetImpl.java
deleted file mode 100644
index ccfbb73..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetImpl.java
+++ /dev/null
@@ -1,2222 +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 tajo.engine.query;
-
-import com.google.common.collect.Lists;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.*;
-import tajo.catalog.TableMeta;
-import tajo.catalog.TableMetaImpl;
-import tajo.catalog.proto.CatalogProtos.TableProto;
-import tajo.datum.Datum;
-import tajo.datum.NullDatum;
-import tajo.exception.UnsupportedException;
-import tajo.storage.Fragment;
-import tajo.storage.MergeScanner;
-import tajo.storage.Scanner;
-import tajo.storage.Tuple;
-import tajo.util.FileUtil;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.math.BigDecimal;
-import java.net.URL;
-import java.sql.*;
-import java.sql.Date;
-import java.util.*;
-
-public class ResultSetImpl implements ResultSet {
-  private final String cursorName = "tajo";
-  private Configuration conf;
-  private FileSystem fs;
-  private Scanner scanner;
-  private TableMeta meta;
-  private Tuple cur;
-  private int curRow;
-  private long totalRow;
-  private boolean wasNull;
-
-  public ResultSetImpl(Configuration conf, String path) throws IOException {
-    this(conf, new Path(path));
-  }
-
-  public ResultSetImpl(Configuration conf, Path path) throws IOException {
-    this.conf = conf;
-    this.fs = path.getFileSystem(this.conf);
-    // TODO - to be improved. It can be solved to get the query finish status
-    // from master.
-    try {
-      this.meta = getMeta(this.conf, path);
-    } catch (FileNotFoundException fnf) {
-      this.totalRow = 0;
-      init();
-      return;
-    }
-    this.totalRow = meta.getStat() != null ? meta.getStat().getNumRows() : 0;
-    Collection<Fragment> frags = getFragmentsNG(meta, path);
-    scanner = new MergeScanner(conf, meta, frags);
-    init();
-  }
-
-  private void init() {
-    cur = null;
-    curRow = 0;
-  }
-
-  private TableMeta getMeta(Configuration conf, Path tablePath)
-      throws IOException {
-    Path tableMetaPath = new Path(tablePath, ".meta");
-    if (!fs.exists(tableMetaPath)) {
-      throw new FileNotFoundException(".meta file not found in "
-          + tablePath.toString());
-    }
-    FSDataInputStream in = fs.open(tableMetaPath);
-    TableProto tableProto = (TableProto) FileUtil.loadProto(in,
-        TableProto.getDefaultInstance());
-    return new TableMetaImpl(tableProto);
-  }
-
-  class FileNameComparator implements Comparator<FileStatus> {
-
-    @Override
-    public int compare(FileStatus f1, FileStatus f2) {
-      return f2.getPath().getName().compareTo(f1.getPath().getName());
-    }
-  }
-
-  private Collection<Fragment> getFragmentsNG(TableMeta meta, Path tablePath)
-      throws IOException {
-    List<Fragment> fraglist = Lists.newArrayList();
-    FileStatus[] files = fs.listStatus(tablePath, new PathFilter() {
-      @Override
-      public boolean accept(Path path) {
-        return path.getName().charAt(0) != '.';
-      }
-    });
-    Arrays.sort(files, new FileNameComparator());
-
-    String tbname = tablePath.getName();
-    for (int i = 0; i < files.length; i++) {
-      if (files[i].getLen() == 0) {
-        continue;
-      }
-      fraglist.add(new Fragment(tbname + "_" + i, files[i].getPath(), meta, 0l,
-          files[i].getLen(), null));
-    }
-    return fraglist;
-  }
-
-  private Fragment[] getFragments(TableMeta meta, Path tablePath)
-      throws IOException {
-    List<Fragment> fraglist = Lists.newArrayList();
-    FileStatus[] files = fs.listStatus(new Path(tablePath, "data"));
-    Arrays.sort(files, new FileNameComparator());
-
-    String tbname = tablePath.getName();
-    for (int i = 0; i < files.length; i++) {
-      if (files[i].getLen() == 0) {
-        continue;
-      }
-      fraglist.add(new Fragment(tbname + "_" + i, files[i].getPath(), meta, 0l,
-          files[i].getLen(), null));
-    }
-    return fraglist.toArray(new Fragment[fraglist.size()]);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.Wrapper#isWrapperFor(java.lang.Class)
-   */
-  @Override
-  public boolean isWrapperFor(Class<?> arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.Wrapper#unwrap(java.lang.Class)
-   */
-  @Override
-  public <T> T unwrap(Class<T> arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#absolute(int)
-   */
-  @Override
-  public boolean absolute(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#afterLast()
-   */
-  @Override
-  public void afterLast() throws SQLException {
-    while (this.next())
-      ;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#beforeFirst()
-   */
-  @Override
-  public void beforeFirst() throws SQLException {
-    try {
-      scanner.reset();
-      init();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#cancelRowUpdates()
-   */
-  @Override
-  public void cancelRowUpdates() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#clearWarnings()
-   */
-  @Override
-  public void clearWarnings() throws SQLException {
-    // TODO
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#close()
-   */
-  @Override
-  public void close() throws SQLException {
-    try {
-      this.scanner.close();
-      cur = null;
-      curRow = -1;
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#deleteRow()
-   */
-  @Override
-  public void deleteRow() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#findColumn(java.lang.String)
-   */
-  @Override
-  public int findColumn(String colName) throws SQLException {
-    return this.meta.getSchema().getColumnIdByName(colName);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#first()
-   */
-  @Override
-  public boolean first() throws SQLException {
-    this.beforeFirst();
-    return this.next();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getArray(int)
-   */
-  @Override
-  public Array getArray(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getArray(java.lang.String)
-   */
-  @Override
-  public Array getArray(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getAsciiStream(int)
-   */
-  @Override
-  public InputStream getAsciiStream(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getAsciiStream(java.lang.String)
-   */
-  @Override
-  public InputStream getAsciiStream(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(int)
-   */
-  @Override
-  public BigDecimal getBigDecimal(int fieldId) throws SQLException {
-    // TODO
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(java.lang.String)
-   */
-  @Override
-  public BigDecimal getBigDecimal(String fieldName) throws SQLException {
-    // TODO
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(int, int)
-   */
-  @Override
-  public BigDecimal getBigDecimal(int arg0, int arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBigDecimal(java.lang.String, int)
-   */
-  @Override
-  public BigDecimal getBigDecimal(String arg0, int arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBinaryStream(int)
-   */
-  @Override
-  public InputStream getBinaryStream(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBinaryStream(java.lang.String)
-   */
-  @Override
-  public InputStream getBinaryStream(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBlob(int)
-   */
-  @Override
-  public Blob getBlob(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBlob(java.lang.String)
-   */
-  @Override
-  public Blob getBlob(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBoolean(int)
-   */
-  @Override
-  public boolean getBoolean(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asBool();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBoolean(java.lang.String)
-   */
-  @Override
-  public boolean getBoolean(String colName) throws SQLException {
-    Datum datum = cur.get(findColumn(colName));
-    handleNull(datum);
-    return datum.asBool();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getByte(int)
-   */
-  @Override
-  public byte getByte(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asByte();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getByte(java.lang.String)
-   */
-  @Override
-  public byte getByte(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asByte();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBytes(int)
-   */
-  @Override
-  public byte[] getBytes(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asByteArray();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getBytes(java.lang.String)
-   */
-  @Override
-  public byte[] getBytes(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asByteArray();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getCharacterStream(int)
-   */
-  @Override
-  public Reader getCharacterStream(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getCharacterStream(java.lang.String)
-   */
-  @Override
-  public Reader getCharacterStream(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getClob(int)
-   */
-  @Override
-  public Clob getClob(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getClob(java.lang.String)
-   */
-  @Override
-  public Clob getClob(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getConcurrency()
-   */
-  @Override
-  public int getConcurrency() throws SQLException {
-    return ResultSet.CONCUR_READ_ONLY;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getCursorName()
-   */
-  @Override
-  public String getCursorName() throws SQLException {
-    return cursorName;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(int)
-   */
-  @Override
-  public Date getDate(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(java.lang.String)
-   */
-  @Override
-  public Date getDate(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(int, java.util.Calendar)
-   */
-  @Override
-  public Date getDate(int arg0, Calendar arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDate(java.lang.String, java.util.Calendar)
-   */
-  @Override
-  public Date getDate(String arg0, Calendar arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDouble(int)
-   */
-  @Override
-  public double getDouble(int fieldId) throws SQLException {
-    Datum datum = cur.getDouble(fieldId - 1);
-    handleNull(datum);
-    return datum.asFloat8();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getDouble(java.lang.String)
-   */
-  @Override
-  public double getDouble(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asFloat8();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFetchDirection()
-   */
-  @Override
-  public int getFetchDirection() throws SQLException {
-    return ResultSet.FETCH_FORWARD;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFetchSize()
-   */
-  @Override
-  public int getFetchSize() throws SQLException {
-    return 0;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFloat(int)
-   */
-  @Override
-  public float getFloat(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asFloat4();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getFloat(java.lang.String)
-   */
-  @Override
-  public float getFloat(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asFloat4();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getHoldability()
-   */
-  @Override
-  public int getHoldability() throws SQLException {
-    return 0;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getInt(int)
-   */
-  @Override
-  public int getInt(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asInt4();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getInt(java.lang.String)
-   */
-  @Override
-  public int getInt(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asInt4();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getLong(int)
-   */
-  @Override
-  public long getLong(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asInt8();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getLong(java.lang.String)
-   */
-  @Override
-  public long getLong(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asInt8();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getMetaData()
-   */
-  @Override
-  public ResultSetMetaData getMetaData() throws SQLException {
-    return new ResultSetMetaDataImpl(meta);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNCharacterStream(int)
-   */
-  @Override
-  public Reader getNCharacterStream(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNCharacterStream(java.lang.String)
-   */
-  @Override
-  public Reader getNCharacterStream(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNClob(int)
-   */
-  @Override
-  public NClob getNClob(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNClob(java.lang.String)
-   */
-  @Override
-  public NClob getNClob(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNString(int)
-   */
-  @Override
-  public String getNString(int fieldId) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getNString(java.lang.String)
-   */
-  @Override
-  public String getNString(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(int)
-   */
-  @Override
-  public Object getObject(int fieldId) throws SQLException {
-    Datum d = cur.get(fieldId - 1);
-    wasNull = (d == null);
-
-    // TODO - to be changed to return Object type
-    return d;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(java.lang.String)
-   */
-  @Override
-  public Object getObject(String arg0) throws SQLException {
-    Datum d = cur.get(findColumn(arg0));
-    wasNull = (d == null);
-    return d;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(int, java.util.Map)
-   */
-  @Override
-  public Object getObject(int arg0, Map<String, Class<?>> arg1)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(java.lang.String, java.util.Map)
-   */
-  @Override
-  public Object getObject(String arg0, Map<String, Class<?>> arg1)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(java.lang.String, java.lang.Class)
-   */
-  public <T> T getObject(String arg0, Class<T> arg1)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getObject(int, java.lang.Class)
-   */
-  public <T> T getObject(int arg0, Class<T> arg1)
-      throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-  
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRef(int)
-   */
-  @Override
-  public Ref getRef(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRef(java.lang.String)
-   */
-  @Override
-  public Ref getRef(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRow()
-   */
-  @Override
-  public int getRow() throws SQLException {
-    return curRow;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRowId(int)
-   */
-  @Override
-  public RowId getRowId(int fieldId) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getRowId(java.lang.String)
-   */
-  @Override
-  public RowId getRowId(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getSQLXML(int)
-   */
-  @Override
-  public SQLXML getSQLXML(int fieldId) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getSQLXML(java.lang.String)
-   */
-  @Override
-  public SQLXML getSQLXML(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getShort(int)
-   */
-  @Override
-  public short getShort(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asInt2();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getShort(java.lang.String)
-   */
-  @Override
-  public short getShort(String name) throws SQLException {
-    Datum datum = cur.get(findColumn(name));
-    handleNull(datum);
-    return datum.asInt2();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getStatement()
-   */
-  @Override
-  public Statement getStatement() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getString(int)
-   */
-  @Override
-  public String getString(int fieldId) throws SQLException {
-    Datum datum = cur.get(fieldId - 1);
-    handleNull(datum);
-    return datum.asChars();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getString(java.lang.String)
-   */
-  @Override
-  public String getString(String arg0) throws SQLException {
-    Datum datum = cur.get(findColumn(arg0));
-    handleNull(datum);
-    return datum.asChars();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(int)
-   */
-  @Override
-  public Time getTime(int fieldId) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(java.lang.String)
-   */
-  @Override
-  public Time getTime(String name) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(int, java.util.Calendar)
-   */
-  @Override
-  public Time getTime(int fieldId, Calendar arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTime(java.lang.String, java.util.Calendar)
-   */
-  @Override
-  public Time getTime(String name, Calendar arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(int)
-   */
-  @Override
-  public Timestamp getTimestamp(int fieldId) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(java.lang.String)
-   */
-  @Override
-  public Timestamp getTimestamp(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar)
-   */
-  @Override
-  public Timestamp getTimestamp(int fieldId, Calendar arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getTimestamp(java.lang.String, java.util.Calendar)
-   */
-  @Override
-  public Timestamp getTimestamp(String arg0, Calendar arg1) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getType()
-   */
-  @Override
-  public int getType() throws SQLException {
-    return ResultSet.TYPE_FORWARD_ONLY;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getURL(int)
-   */
-  @Override
-  public URL getURL(int fieldId) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getURL(java.lang.String)
-   */
-  @Override
-  public URL getURL(String arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getUnicodeStream(int)
-   */
-  @Override
-  public InputStream getUnicodeStream(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getUnicodeStream(java.lang.String)
-   */
-  @Override
-  public InputStream getUnicodeStream(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#getWarnings()
-   */
-  @Override
-  public SQLWarning getWarnings() throws SQLException {
-    // TODO
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#insertRow()
-   */
-  @Override
-  public void insertRow() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isAfterLast()
-   */
-  @Override
-  public boolean isAfterLast() throws SQLException {
-    return this.curRow > this.totalRow;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isBeforeFirst()
-   */
-  @Override
-  public boolean isBeforeFirst() throws SQLException {
-    return this.curRow == 0;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isClosed()
-   */
-  @Override
-  public boolean isClosed() throws SQLException {
-    return this.curRow == -1;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isFirst()
-   */
-  @Override
-  public boolean isFirst() throws SQLException {
-    return this.curRow == 1;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#isLast()
-   */
-  @Override
-  public boolean isLast() throws SQLException {
-    return this.curRow == this.totalRow;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#last()
-   */
-  @Override
-  public boolean last() throws SQLException {
-    Tuple last = null;
-    while (this.next()) {
-      last = cur;
-    }
-    cur = last;
-    return true;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#moveToCurrentRow()
-   */
-  @Override
-  public void moveToCurrentRow() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#moveToInsertRow()
-   */
-  @Override
-  public void moveToInsertRow() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#next()
-   */
-  @Override
-  public boolean next() throws SQLException {
-    try {
-      if (totalRow <= 0)
-        return false;
-
-      cur = scanner.next();
-      curRow++;
-      if (cur != null) {
-        return true;
-      }
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-    return false;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#previous()
-   */
-  @Override
-  public boolean previous() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#refreshRow()
-   */
-  @Override
-  public void refreshRow() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#relative(int)
-   */
-  @Override
-  public boolean relative(int arg0) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#rowDeleted()
-   */
-  @Override
-  public boolean rowDeleted() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#rowInserted()
-   */
-  @Override
-  public boolean rowInserted() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#rowUpdated()
-   */
-  @Override
-  public boolean rowUpdated() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#setFetchDirection(int)
-   */
-  @Override
-  public void setFetchDirection(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#setFetchSize(int)
-   */
-  @Override
-  public void setFetchSize(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateArray(int, java.sql.Array)
-   */
-  @Override
-  public void updateArray(int arg0, Array arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateArray(java.lang.String, java.sql.Array)
-   */
-  @Override
-  public void updateArray(String arg0, Array arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream)
-   */
-  @Override
-  public void updateAsciiStream(int arg0, InputStream arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(java.lang.String,
-   * java.io.InputStream)
-   */
-  @Override
-  public void updateAsciiStream(String arg0, InputStream arg1)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, int)
-   */
-  @Override
-  public void updateAsciiStream(int arg0, InputStream arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(java.lang.String,
-   * java.io.InputStream, int)
-   */
-  @Override
-  public void updateAsciiStream(String arg0, InputStream arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, long)
-   */
-  @Override
-  public void updateAsciiStream(int arg0, InputStream arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateAsciiStream(java.lang.String,
-   * java.io.InputStream, long)
-   */
-  @Override
-  public void updateAsciiStream(String arg0, InputStream arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBigDecimal(int, java.math.BigDecimal)
-   */
-  @Override
-  public void updateBigDecimal(int arg0, BigDecimal arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBigDecimal(java.lang.String,
-   * java.math.BigDecimal)
-   */
-  @Override
-  public void updateBigDecimal(String arg0, BigDecimal arg1)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream)
-   */
-  @Override
-  public void updateBinaryStream(int arg0, InputStream arg1)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(java.lang.String,
-   * java.io.InputStream)
-   */
-  @Override
-  public void updateBinaryStream(String arg0, InputStream arg1)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, int)
-   */
-  @Override
-  public void updateBinaryStream(int arg0, InputStream arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(java.lang.String,
-   * java.io.InputStream, int)
-   */
-  @Override
-  public void updateBinaryStream(String arg0, InputStream arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, long)
-   */
-  @Override
-  public void updateBinaryStream(int arg0, InputStream arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBinaryStream(java.lang.String,
-   * java.io.InputStream, long)
-   */
-  @Override
-  public void updateBinaryStream(String arg0, InputStream arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(int, java.sql.Blob)
-   */
-  @Override
-  public void updateBlob(int arg0, Blob arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(java.lang.String, java.sql.Blob)
-   */
-  @Override
-  public void updateBlob(String arg0, Blob arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(int, java.io.InputStream)
-   */
-  @Override
-  public void updateBlob(int arg0, InputStream arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(java.lang.String, java.io.InputStream)
-   */
-  @Override
-  public void updateBlob(String arg0, InputStream arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(int, java.io.InputStream, long)
-   */
-  @Override
-  public void updateBlob(int arg0, InputStream arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBlob(java.lang.String, java.io.InputStream,
-   * long)
-   */
-  @Override
-  public void updateBlob(String arg0, InputStream arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBoolean(int, boolean)
-   */
-  @Override
-  public void updateBoolean(int arg0, boolean arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBoolean(java.lang.String, boolean)
-   */
-  @Override
-  public void updateBoolean(String arg0, boolean arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateByte(int, byte)
-   */
-  @Override
-  public void updateByte(int arg0, byte arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateByte(java.lang.String, byte)
-   */
-  @Override
-  public void updateByte(String arg0, byte arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBytes(int, byte[])
-   */
-  @Override
-  public void updateBytes(int arg0, byte[] arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateBytes(java.lang.String, byte[])
-   */
-  @Override
-  public void updateBytes(String arg0, byte[] arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader)
-   */
-  @Override
-  public void updateCharacterStream(int arg0, Reader arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(java.lang.String,
-   * java.io.Reader)
-   */
-  @Override
-  public void updateCharacterStream(String arg0, Reader arg1)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, int)
-   */
-  @Override
-  public void updateCharacterStream(int arg0, Reader arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(java.lang.String,
-   * java.io.Reader, int)
-   */
-  @Override
-  public void updateCharacterStream(String arg0, Reader arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, long)
-   */
-  @Override
-  public void updateCharacterStream(int arg0, Reader arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateCharacterStream(java.lang.String,
-   * java.io.Reader, long)
-   */
-  @Override
-  public void updateCharacterStream(String arg0, Reader arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(int, java.sql.Clob)
-   */
-  @Override
-  public void updateClob(int arg0, Clob arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(java.lang.String, java.sql.Clob)
-   */
-  @Override
-  public void updateClob(String arg0, Clob arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(int, java.io.Reader)
-   */
-  @Override
-  public void updateClob(int arg0, Reader arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(java.lang.String, java.io.Reader)
-   */
-  @Override
-  public void updateClob(String arg0, Reader arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(int, java.io.Reader, long)
-   */
-  @Override
-  public void updateClob(int arg0, Reader arg1, long arg2) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateClob(java.lang.String, java.io.Reader, long)
-   */
-  @Override
-  public void updateClob(String arg0, Reader arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDate(int, java.sql.Date)
-   */
-  @Override
-  public void updateDate(int arg0, Date arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDate(java.lang.String, java.sql.Date)
-   */
-  @Override
-  public void updateDate(String arg0, Date arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDouble(int, double)
-   */
-  @Override
-  public void updateDouble(int arg0, double arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateDouble(java.lang.String, double)
-   */
-  @Override
-  public void updateDouble(String arg0, double arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateFloat(int, float)
-   */
-  @Override
-  public void updateFloat(int arg0, float arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateFloat(java.lang.String, float)
-   */
-  @Override
-  public void updateFloat(String arg0, float arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateInt(int, int)
-   */
-  @Override
-  public void updateInt(int arg0, int arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateInt(java.lang.String, int)
-   */
-  @Override
-  public void updateInt(String arg0, int arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateLong(int, long)
-   */
-  @Override
-  public void updateLong(int arg0, long arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateLong(java.lang.String, long)
-   */
-  @Override
-  public void updateLong(String arg0, long arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(int, java.io.Reader)
-   */
-  @Override
-  public void updateNCharacterStream(int arg0, Reader arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(java.lang.String,
-   * java.io.Reader)
-   */
-  @Override
-  public void updateNCharacterStream(String arg0, Reader arg1)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(int, java.io.Reader, long)
-   */
-  @Override
-  public void updateNCharacterStream(int arg0, Reader arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNCharacterStream(java.lang.String,
-   * java.io.Reader, long)
-   */
-  @Override
-  public void updateNCharacterStream(String arg0, Reader arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(int, java.sql.NClob)
-   */
-  @Override
-  public void updateNClob(int arg0, NClob arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(java.lang.String, java.sql.NClob)
-   */
-  @Override
-  public void updateNClob(String arg0, NClob arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(int, java.io.Reader)
-   */
-  @Override
-  public void updateNClob(int arg0, Reader arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(java.lang.String, java.io.Reader)
-   */
-  @Override
-  public void updateNClob(String arg0, Reader arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(int, java.io.Reader, long)
-   */
-  @Override
-  public void updateNClob(int arg0, Reader arg1, long arg2) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNClob(java.lang.String, java.io.Reader, long)
-   */
-  @Override
-  public void updateNClob(String arg0, Reader arg1, long arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNString(int, java.lang.String)
-   */
-  @Override
-  public void updateNString(int arg0, String arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNString(java.lang.String, java.lang.String)
-   */
-  @Override
-  public void updateNString(String arg0, String arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNull(int)
-   */
-  @Override
-  public void updateNull(int arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateNull(java.lang.String)
-   */
-  @Override
-  public void updateNull(String arg0) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(int, java.lang.Object)
-   */
-  @Override
-  public void updateObject(int arg0, Object arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object)
-   */
-  @Override
-  public void updateObject(String arg0, Object arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(int, java.lang.Object, int)
-   */
-  @Override
-  public void updateObject(int arg0, Object arg1, int arg2) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object,
-   * int)
-   */
-  @Override
-  public void updateObject(String arg0, Object arg1, int arg2)
-      throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRef(int, java.sql.Ref)
-   */
-  @Override
-  public void updateRef(int arg0, Ref arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRef(java.lang.String, java.sql.Ref)
-   */
-  @Override
-  public void updateRef(String arg0, Ref arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRow()
-   */
-  @Override
-  public void updateRow() throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRowId(int, java.sql.RowId)
-   */
-  @Override
-  public void updateRowId(int arg0, RowId arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateRowId(java.lang.String, java.sql.RowId)
-   */
-  @Override
-  public void updateRowId(String arg0, RowId arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateSQLXML(int, java.sql.SQLXML)
-   */
-  @Override
-  public void updateSQLXML(int arg0, SQLXML arg1) throws SQLException {
-    throw new UnsupportedException();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateSQLXML(java.lang.String, java.sql.SQLXML)
-   */
-  @Override
-  public void updateSQLXML(String arg0, SQLXML arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateShort(int, short)
-   */
-  @Override
-  public void updateShort(int arg0, short arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateShort(java.lang.String, short)
-   */
-  @Override
-  public void updateShort(String arg0, short arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateString(int, java.lang.String)
-   */
-  @Override
-  public void updateString(int arg0, String arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateString(java.lang.String, java.lang.String)
-   */
-  @Override
-  public void updateString(String arg0, String arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTime(int, java.sql.Time)
-   */
-  @Override
-  public void updateTime(int arg0, Time arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTime(java.lang.String, java.sql.Time)
-   */
-  @Override
-  public void updateTime(String arg0, Time arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTimestamp(int, java.sql.Timestamp)
-   */
-  @Override
-  public void updateTimestamp(int arg0, Timestamp arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#updateTimestamp(java.lang.String,
-   * java.sql.Timestamp)
-   */
-  @Override
-  public void updateTimestamp(String arg0, Timestamp arg1) throws SQLException {
-    throw new UnsupportedException();
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.sql.ResultSet#wasNull()
-   */
-  @Override
-  public boolean wasNull() throws SQLException {
-    return wasNull;
-  }
-
-  private void handleNull(Datum d) {
-    wasNull = (d instanceof NullDatum);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetMetaDataImpl.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetMetaDataImpl.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetMetaDataImpl.java
deleted file mode 100644
index baea966..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/ResultSetMetaDataImpl.java
+++ /dev/null
@@ -1,259 +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 tajo.engine.query;
-
-import tajo.catalog.TableMeta;
-import tajo.common.TajoDataTypes.DataType;
-import tajo.exception.UnsupportedException;
-
-import java.nio.channels.UnsupportedAddressTypeException;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Types;
-
-public class ResultSetMetaDataImpl implements ResultSetMetaData {
-  private TableMeta meta;
-  
-  public ResultSetMetaDataImpl(TableMeta meta) {
-    this.meta = meta;
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.Wrapper#isWrapperFor(java.lang.Class)
-   */
-  @Override
-  public boolean isWrapperFor(Class<?> arg0) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.Wrapper#unwrap(java.lang.Class)
-   */
-  @Override
-  public <T> T unwrap(Class<T> arg0) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getCatalogName(int)
-   */
-  @Override
-  public String getCatalogName(int column) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnClassName(int)
-   */
-  @Override
-  public String getColumnClassName(int column) throws SQLException {
-    return meta.getSchema().getColumn(column - 1).getClass().getName();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnCount()
-   */
-  @Override
-  public int getColumnCount() throws SQLException {
-    return meta.getSchema().getColumnNum();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnDisplaySize(int)
-   */
-  @Override
-  public int getColumnDisplaySize(int column) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnLabel(int)
-   */
-  @Override
-  public String getColumnLabel(int column) throws SQLException {
-    return meta.getSchema().getColumn(column - 1).getQualifiedName();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnName(int)
-   */
-  @Override
-  public String getColumnName(int column) throws SQLException {
-    return meta.getSchema().getColumn(column - 1).getColumnName();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnType(int)
-   */
-  @Override
-  public int getColumnType(int column) throws SQLException {
-    // TODO
-    DataType type = meta.getSchema().getColumn(column - 1).getDataType();
-    switch (type.getType()) {
-      case BOOLEAN:
-        return Types.BOOLEAN;
-      case INT1:
-        return Types.TINYINT;
-      case INT2:
-        return Types.SMALLINT;
-      case INT4:
-        return Types.INTEGER;
-      case INT8:
-        return Types.BIGINT;
-      case FLOAT4:
-        return Types.FLOAT;
-      case FLOAT8:
-        return Types.DOUBLE;
-      case DECIMAL:
-        return Types.DECIMAL;
-      case VARBINARY:
-        return Types.VARBINARY;
-      case CHAR:
-        return Types.CHAR;
-      case DATE:
-        return Types.DATE;
-      case VARCHAR:
-        return Types.VARCHAR;
-      case TEXT:
-        return Types.VARCHAR;
-      default:
-        throw new UnsupportedException();
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getColumnTypeName(int)
-   */
-  @Override
-  public String getColumnTypeName(int column) throws SQLException {
-    return meta.getSchema().getColumn(column - 1).
-        getDataType().getClass().getCanonicalName();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getPrecision(int)
-   */
-  @Override
-  public int getPrecision(int column) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getScale(int)
-   */
-  @Override
-  public int getScale(int column) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getSchemaName(int)
-   */
-  @Override
-  public String getSchemaName(int column) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#getTableName(int)
-   */
-  @Override
-  public String getTableName(int column) throws SQLException {
-    return meta.getSchema().getColumn(column - 1).getTableName();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isAutoIncrement(int)
-   */
-  @Override
-  public boolean isAutoIncrement(int column) throws SQLException {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isCaseSensitive(int)
-   */
-  @Override
-  public boolean isCaseSensitive(int column) throws SQLException {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isCurrency(int)
-   */
-  @Override
-  public boolean isCurrency(int column) throws SQLException {
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isDefinitelyWritable(int)
-   */
-  @Override
-  public boolean isDefinitelyWritable(int column) throws SQLException {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isNullable(int)
-   */
-  @Override
-  public int isNullable(int column) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isReadOnly(int)
-   */
-  @Override
-  public boolean isReadOnly(int column) throws SQLException {
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isSearchable(int)
-   */
-  @Override
-  public boolean isSearchable(int column) throws SQLException {
-    // TODO
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isSigned(int)
-   */
-  @Override
-  public boolean isSigned(int column) throws SQLException {
-    // TODO Auto-generated method stub
-    throw new UnsupportedAddressTypeException();
-  }
-
-  /* (non-Javadoc)
-   * @see java.sql.ResultSetMetaData#isWritable(int)
-   */
-  @Override
-  public boolean isWritable(int column) throws SQLException {
-    return false;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/AmbiguousFieldException.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/AmbiguousFieldException.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/AmbiguousFieldException.java
deleted file mode 100644
index 88bebb1..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/AmbiguousFieldException.java
+++ /dev/null
@@ -1,30 +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 tajo.engine.query.exception;
-
-public class AmbiguousFieldException extends InvalidQueryException {
-	private static final long serialVersionUID = 3102675985226352347L;
-
-	/**
-	 * @param fieldName
-	 */
-	public AmbiguousFieldException(String fieldName) {
-		super("ERROR: column name "+ fieldName + " is ambiguous");	
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/InvalidQueryException.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/InvalidQueryException.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/InvalidQueryException.java
deleted file mode 100644
index 2f723e2..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/InvalidQueryException.java
+++ /dev/null
@@ -1,35 +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 tajo.engine.query.exception;
-
-public class InvalidQueryException extends RuntimeException {
-	private static final long serialVersionUID = -7085849718839416246L;
-
-  public InvalidQueryException() {
-    super();
-  }
-
-	public InvalidQueryException(String message) {
-    super(message);
-  }
-	
-	public InvalidQueryException(Throwable t) {
-		super(t);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/NotSupportQueryException.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/NotSupportQueryException.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/NotSupportQueryException.java
deleted file mode 100644
index 2fdf3ef..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/NotSupportQueryException.java
+++ /dev/null
@@ -1,34 +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 tajo.engine.query.exception;
-
-
-public class NotSupportQueryException extends InvalidQueryException {
-	private static final long serialVersionUID = 4079784008765680410L;
-
-	/**
-	 * @param query
-	 */
-	public NotSupportQueryException(String query) {
-		super("Unsupported query: "+query);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLParseError.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLParseError.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLParseError.java
deleted file mode 100644
index 3f1e873..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLParseError.java
+++ /dev/null
@@ -1,27 +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 tajo.engine.query.exception;
-
-
-@SuppressWarnings("UnusedDeclaration")
-public class TQLParseError extends RuntimeException {
-  public TQLParseError(String parseErrorMessage) {
-    super(parseErrorMessage);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLSyntaxError.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLSyntaxError.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLSyntaxError.java
deleted file mode 100644
index e792562..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/TQLSyntaxError.java
+++ /dev/null
@@ -1,45 +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 tajo.engine.query.exception;
-
-
-public class TQLSyntaxError extends InvalidQueryException {
-	private static final long serialVersionUID = 5388279335175632066L;
-
-  private String query;
-  private String errorMessage;
-  private String detailedMessage;
-
-	public TQLSyntaxError(String query, String errorMessage) {
-    this.query = query;
-    this.errorMessage = errorMessage;
-	}
-
-  @Override
-  public String getMessage() {
-    if (detailedMessage == null) {
-      StringBuilder sb = new StringBuilder();
-      sb.append("ERROR: " + errorMessage).append("\n");
-      sb.append("LINE: " + query);
-      detailedMessage = sb.toString();
-    }
-
-    return detailedMessage;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/UndefinedFunctionException.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/UndefinedFunctionException.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/UndefinedFunctionException.java
deleted file mode 100644
index a1c420e..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/query/exception/UndefinedFunctionException.java
+++ /dev/null
@@ -1,34 +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 tajo.engine.query.exception;
-
-
-public class UndefinedFunctionException extends InvalidQueryException {
-	private static final long serialVersionUID = 113593927391549716L;
-
-	/**
-	 * @param signature
-	 */
-	public UndefinedFunctionException(String signature) {
-		super("Error: call to undefined function "+signature+"()");	
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ProtoUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ProtoUtil.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ProtoUtil.java
deleted file mode 100644
index 4b02187..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ProtoUtil.java
+++ /dev/null
@@ -1,29 +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 tajo.engine.utils;
-
-import tajo.rpc.protocolrecords.PrimitiveProtos.StringProto;
-
-public class ProtoUtil {
-  public static StringProto newProto(String val) {
-    StringProto.Builder builder = StringProto.newBuilder();
-    builder.setValue(val);
-    return builder.build();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/SchemaUtil.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/SchemaUtil.java
deleted file mode 100644
index 894b0d4..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/SchemaUtil.java
+++ /dev/null
@@ -1,97 +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 tajo.engine.utils;
-
-import tajo.catalog.Column;
-import tajo.catalog.Schema;
-import tajo.common.TajoDataTypes.DataType;
-import tajo.engine.parser.QueryBlock;
-
-import java.util.Collection;
-
-public class SchemaUtil {
-  public static Schema merge(Schema left, Schema right) {
-    Schema merged = new Schema();
-    for(Column col : left.getColumns()) {
-      if (!merged.contains(col.getQualifiedName())) {
-        merged.addColumn(col);
-      }
-    }
-    for(Column col : right.getColumns()) {
-      if (!merged.contains(col.getQualifiedName())) {
-        merged.addColumn(col);
-      }
-    }
-    
-    return merged;
-  }
-
-  public static Schema merge(QueryBlock.FromTable [] fromTables) {
-    Schema merged = new Schema();
-    for (QueryBlock.FromTable table : fromTables) {
-      merged.addColumns(table.getSchema());
-    }
-
-    return merged;
-  }
-  
-  public static Schema getCommons(Schema left, Schema right) {
-    Schema common = new Schema();
-    for (Column outer : left.getColumns()) {
-      for (Column inner : right.getColumns()) {
-        if (outer.getColumnName().equals(inner.getColumnName()) &&
-            outer.getDataType().equals(inner.getDataType())) {
-          common.addColumn(outer.getColumnName(), outer.getDataType());
-        }
-      }
-    }
-    
-    return common;
-  }
-
-  public static Schema mergeAllWithNoDup(Collection<Column>...columnList) {
-    Schema merged = new Schema();
-    for (Collection<Column> columns : columnList) {
-      for (Column col : columns) {
-        if (merged.contains(col.getQualifiedName())) {
-          continue;
-        }
-        merged.addColumn(col);
-      }
-    }
-
-    return merged;
-  }
-
-  public static Schema getProjectedSchema(Schema inSchema, Collection<Column> columns) {
-    Schema projected = new Schema();
-    for (Column col : columns) {
-      if (inSchema.contains(col.getQualifiedName())) {
-        projected.addColumn(col);
-      }
-    }
-
-    return projected;
-  }
-
-  public static DataType[] newNoNameSchema(DataType... types) {
-    DataType [] dataTypes = types.clone();
-    return dataTypes;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/bc6359b8/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ThreadUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ThreadUtil.java b/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ThreadUtil.java
deleted file mode 100644
index 92b5ba5..0000000
--- a/tajo-core/tajo-core-backend/src/main/java/tajo/engine/utils/ThreadUtil.java
+++ /dev/null
@@ -1,149 +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 tajo.engine.utils;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.util.ReflectionUtils;
-
-import java.io.PrintWriter;
-import java.lang.Thread.UncaughtExceptionHandler;
-
-public class ThreadUtil {
-	protected static final Log LOG = LogFactory.getLog(ThreadUtil.class);
-
-	  /**
-	   * Utility method that sets name, daemon status and starts passed thread.
-	   * @param t thread to run
-	   * @return Returns the passed Thread <code>t</code>.
-	   */
-	  public static Thread setDaemonThreadRunning(final Thread t) {
-	    return setDaemonThreadRunning(t, t.getName());
-	  }
-
-	  /**
-	   * Utility method that sets name, daemon status and starts passed thread.
-	   * @param t thread to frob
-	   * @param name new name
-	   * @return Returns the passed Thread <code>t</code>.
-	   */
-	  public static Thread setDaemonThreadRunning(final Thread t,
-	    final String name) {
-	    return setDaemonThreadRunning(t, name, null);
-	  }
-
-	  /**
-	   * Utility method that sets name, daemon status and starts passed thread.
-	   * @param t thread to frob
-	   * @param name new name
-	   * @param handler A handler to set on the thread.  Pass null if want to
-	   * use default handler.
-	   * @return Returns the passed Thread <code>t</code>.
-	   */
-	  public static Thread setDaemonThreadRunning(final Thread t,
-	    final String name, final UncaughtExceptionHandler handler) {
-	    t.setName(name);
-	    if (handler != null) {
-	      t.setUncaughtExceptionHandler(handler);
-	    }
-	    t.setDaemon(true);
-	    t.start();
-	    return t;
-	  }
-
-	  /**
-	   * Shutdown passed thread using isAlive and join.
-	   * @param t Thread to shutdown
-	   */
-	  public static void shutdown(final Thread t) {
-	    shutdown(t, 0);
-	  }
-
-	  /**
-	   * Shutdown passed thread using isAlive and join.
-	   * @param joinwait Pass 0 if we're to wait forever.
-	   * @param t Thread to shutdown
-	   */
-	  public static void shutdown(final Thread t, final long joinwait) {
-	    if (t == null) return;
-	    while (t.isAlive()) {
-	      try {
-	        t.join(joinwait);
-	      } catch (InterruptedException e) {
-	        LOG.warn(t.getName() + "; joinwait=" + joinwait, e);
-	      }
-	    }
-	  }
-
-
-	  /**
-	   * @param t Waits on the passed thread to die dumping a threaddump every
-	   * minute while its up.
-	   * @throws InterruptedException
-	   */
-	  public static void threadDumpingIsAlive(final Thread t)
-	  throws InterruptedException {
-	    if (t == null) {
-	      return;
-	    }
-
-	    while (t.isAlive()) {
-	      t.join(60 * 1000);
-	      if (t.isAlive()) {
-	        ReflectionUtils.printThreadInfo(new PrintWriter(System.out),
-	            "Automatic Stack Trace every 60 seconds waiting on " +
-	            t.getName());
-	      }
-	    }
-	  }
-
-	  /**
-	   * @param millis How long to sleep for in milliseconds.
-	   */
-	  public static void sleep(int millis) {
-	    try {
-	      Thread.sleep(millis);
-	    } catch (InterruptedException e) {
-	      e.printStackTrace();
-	    }
-	  }
-
-	  /**
-	   * Sleeps for the given amount of time even if interrupted. Preserves
-	   * the interrupt status.
-	   * @param msToWait the amount of time to sleep in milliseconds
-	   */
-	  public static void sleepWithoutInterrupt(final long msToWait) {
-	    long timeMillis = System.currentTimeMillis();
-	    long endTime = timeMillis + msToWait;
-	    boolean interrupted = false;
-	    while (timeMillis < endTime) {
-	      try {
-	        Thread.sleep(endTime - timeMillis);
-	      } catch (InterruptedException ex) {
-	        interrupted = true;
-	      }
-	      timeMillis = System.currentTimeMillis();
-	    }
-
-	    if (interrupted) {
-	      Thread.currentThread().interrupt();
-	    }
-	  }
-}


Mime
View raw message