/** * Process "alter table <name> skewed by .. on .. stored as directories * @param ast * @param tableName * @param tab * @throws SemanticException */ private void handleAlterTableSkewedBy(ASTNode ast, String tableName, Table tab) throws SemanticException { List<String> skewedColNames = new ArrayList<String>(); List<List<String>> skewedValues = new ArrayList<List<String>>(); /* skewed column names. */ ASTNode skewedNode = (ASTNode) ast.getChild(0); skewedColNames = analyzeSkewedTablDDLColNames(skewedColNames, skewedNode); /* skewed value. */ analyzeDDLSkewedValues(skewedValues, skewedNode); // stored as directories boolean storedAsDirs = analyzeStoredAdDirs(skewedNode); AlterTableDesc alterTblDesc = new AlterTableDesc(tableName, false, skewedColNames, skewedValues); alterTblDesc.setStoredAsSubDirectories(storedAsDirs); /** * Validate information about skewed table */ alterTblDesc.setTable(tab); alterTblDesc.validate(); rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), alterTblDesc))); }
/** * Process "alter table <name> skewed by .. on .. stored as directories * @param ast * @param tableName * @param tab * @throws SemanticException */ private void handleAlterTableSkewedBy(ASTNode ast, String tableName, Table tab) throws SemanticException { List<String> skewedColNames = new ArrayList<String>(); List<List<String>> skewedValues = new ArrayList<List<String>>(); /* skewed column names. */ ASTNode skewedNode = (ASTNode) ast.getChild(0); skewedColNames = analyzeSkewedTablDDLColNames(skewedColNames, skewedNode); /* skewed value. */ analyzeDDLSkewedValues(skewedValues, skewedNode); // stored as directories boolean storedAsDirs = analyzeStoredAdDirs(skewedNode); AlterTableDesc alterTblDesc = new AlterTableDesc(tableName, false, skewedColNames, skewedValues); alterTblDesc.setStoredAsSubDirectories(storedAsDirs); /** * Validate information about skewed table */ alterTblDesc.setTable(tab); alterTblDesc.validate(); rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), alterTblDesc), conf)); }
/** * Process "alter table <name> skewed by .. on .. stored as directories * @param ast * @param tableName * @param tab * @throws SemanticException */ private void handleAlterTableSkewedBy(ASTNode ast, String tableName, Table tab) throws SemanticException { List<String> skewedColNames = new ArrayList<String>(); List<List<String>> skewedValues = new ArrayList<List<String>>(); /* skewed column names. */ ASTNode skewedNode = (ASTNode) ast.getChild(0); skewedColNames = analyzeSkewedTablDDLColNames(skewedColNames, skewedNode); /* skewed value. */ analyzeDDLSkewedValues(skewedValues, skewedNode); // stored as directories boolean storedAsDirs = analyzeStoredAdDirs(skewedNode); AlterTableDesc alterTblDesc = new AlterTableDesc(tableName, false, skewedColNames, skewedValues); alterTblDesc.setStoredAsSubDirectories(storedAsDirs); /** * Validate information about skewed table */ alterTblDesc.setTable(tab); alterTblDesc.validate(); rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), alterTblDesc), conf)); }