blob: e97a9c24a09a1c25b054b3ef9c61e2443cdf8160 [file] [log] [blame]
/**
* 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.hcatalog.cli;
import java.io.IOException;
import junit.framework.TestCase;
import org.apache.hadoop.hive.cli.CliSessionState;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.CommandNeedRetryException;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hcatalog.cli.SemanticAnalysis.HCatSemanticAnalyzer;
/* Unit test for GitHub Howl issue #3 */
public class TestUseDatabase extends TestCase {
private Driver hcatDriver;
@Override
protected void setUp() throws Exception {
HiveConf hcatConf = new HiveConf(this.getClass());
hcatConf.set(ConfVars.PREEXECHOOKS.varname, "");
hcatConf.set(ConfVars.POSTEXECHOOKS.varname, "");
hcatConf.set(ConfVars.HIVE_SUPPORT_CONCURRENCY.varname, "false");
hcatConf.set(ConfVars.SEMANTIC_ANALYZER_HOOK.varname, HCatSemanticAnalyzer.class.getName());
hcatDriver = new Driver(hcatConf);
SessionState.start(new CliSessionState(hcatConf));
}
String query;
private final String dbName = "testUseDatabase_db";
private final String tblName = "testUseDatabase_tbl";
public void testAlterTablePass() throws IOException, CommandNeedRetryException {
hcatDriver.run("create database " + dbName);
hcatDriver.run("use " + dbName);
hcatDriver.run("create table " + tblName + " (a int) partitioned by (b string) stored as RCFILE");
CommandProcessorResponse response;
response = hcatDriver.run("alter table " + tblName + " add partition (b='2') location '/tmp'");
assertEquals(0, response.getResponseCode());
assertNull(response.getErrorMessage());
response = hcatDriver.run("alter table " + tblName + " set fileformat INPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileInputFormat' OUTPUTFORMAT " +
"'org.apache.hadoop.hive.ql.io.RCFileOutputFormat' inputdriver 'mydriver' outputdriver 'yourdriver'");
assertEquals(0, response.getResponseCode());
assertNull(response.getErrorMessage());
hcatDriver.run("drop table " + tblName);
hcatDriver.run("drop database " + dbName);
}
}