Index: ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java (revision 1084672) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java (working copy) @@ -291,7 +291,7 @@ public static SerDe getSpillSerDe(byte alias, Map spillTableDesc,JoinDesc conf, boolean noOuterJoin) { - TableDesc desc = getSpillTableDesc(alias,spillTableDesc,conf, noOuterJoin); + TableDesc desc = getSpillTableDesc(alias, spillTableDesc, conf, noOuterJoin); if (desc == null) { return null; } @@ -355,10 +355,11 @@ JoinDesc conf,boolean noOuterJoin) throws HiveException { TableDesc tblDesc = JoinUtil.getSpillTableDesc(alias,spillTableDesc,conf, noOuterJoin); - SerDe serde = JoinUtil.getSpillSerDe(alias,spillTableDesc,conf,noOuterJoin); + SerDe serde = JoinUtil.getSpillSerDe(alias, spillTableDesc, conf, + noOuterJoin); if (serde == null) { - containerSize = 1; + containerSize = -1; } RowContainer rc = new RowContainer(containerSize, hconf); Index: ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/RowContainer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/RowContainer.java (revision 1084672) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/RowContainer.java (working copy) @@ -116,17 +116,13 @@ JobConf jobCloneUsingLocalFs = null; private LocalFileSystem localFs; - public RowContainer() { - - } - public RowContainer(Configuration jc) throws HiveException { this(BLOCKSIZE, jc); } - public RowContainer(int blockSize, Configuration jc) throws HiveException { + public RowContainer(int bs, Configuration jc) throws HiveException { // no 0-sized block - this.blockSize = blockSize == 0 ? BLOCKSIZE : blockSize; + this.blockSize = bs <= 0 ? BLOCKSIZE : bs; this.size = 0; this.itrCursor = 0; this.addCursor = 0; @@ -139,7 +135,7 @@ this.standardOI = null; this.jc = jc; } - + private JobConf getLocalFSJobConfClone(Configuration jc) { if (this.jobCloneUsingLocalFs == null) { this.jobCloneUsingLocalFs = new JobConf(jc); @@ -149,12 +145,6 @@ } - public RowContainer(int blockSize, SerDe sd, ObjectInspector oi, Configuration jc) - throws HiveException { - this(blockSize, jc); - setSerDe(sd, oi); - } - public void setSerDe(SerDe sd, ObjectInspector oi) { this.serde = sd; this.standardOI = oi; Index: ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverSkewJoin.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverSkewJoin.java (revision 1084672) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverSkewJoin.java (working copy) @@ -94,7 +94,7 @@ Path dirPath = new Path(path); FileSystem inpFs = dirPath.getFileSystem(conf); FileStatus[] fstatus = inpFs.listStatus(dirPath); - if (fstatus.length > 0) { + if (fstatus != null && fstatus.length > 0) { Task task = entry.getValue(); List> parentOps = task.getParentTasks(); if(parentOps!=null){