/** * Concatenate all objects' string with the delimiter ", " * * @param objects Iterable objects * @return A joined string */ public static String join(Object[] objects, String delimiter) { return join(objects, delimiter, 0, objects.length); }
public static String escapePathName(String path) { return escapePathName(path, null); }
protected void compile(String pattern) throws PatternSyntaxException { String escaped = StringUtils.escapeRegexp(pattern); String regex = escaped.replace("_", ".").replace("%", ".*"); int flags = Pattern.DOTALL; if (caseInsensitive) { flags |= Pattern.CASE_INSENSITIVE; } this.compiled = Pattern.compile(regex, flags); }
public static ShuffleType getShuffleType(String shuffleType) { if (StringUtils.isEmpty(shuffleType)) return ShuffleType.NONE_SHUFFLE; return ShuffleType.valueOf(shuffleType); }
public static void main(String[] args) throws Exception { Thread.setDefaultUncaughtExceptionHandler(new TajoUncaughtExceptionHandler()); StringUtils.startupShutdownMessage(TajoWorker.class, args, LOG); TajoConf tajoConf = new TajoConf(); tajoConf.addResource(new Path(TajoConstants.SYSTEM_CONF_FILENAME)); try { TajoWorker tajoWorker = new TajoWorker(); tajoWorker.startWorker(tajoConf, args); } catch (Throwable t) { LOG.fatal("Error starting TajoWorker", t); System.exit(-1); } } }
private PartitionDescProto getPartitionDesc(Path tablePath, Path partitionPath, FileSystem fs) throws IOException { String partitionName = StringUtils.unescapePathName(partitionPath.toString()); int startIndex = partitionName.indexOf(tablePath.toString()) + tablePath.toString().length(); partitionName = partitionName.substring(startIndex + File.separator.length()); CatalogProtos.PartitionDescProto.Builder builder = CatalogProtos.PartitionDescProto.newBuilder(); builder.setPartitionName(partitionName); String[] partitionKeyPairs = partitionName.split("/"); for(int i = 0; i < partitionKeyPairs.length; i++) { String partitionKeyPair = partitionKeyPairs[i]; String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); keyBuilder.setPartitionValue(split[1]); builder.addPartitionKeys(keyBuilder.build()); } builder.setPath(partitionPath.toString()); return builder.build(); }
public static String denormalizePart(String identifier) { if (isShouldBeQuoted(identifier)) { return StringUtils.doubleQuote(identifier); } else { return identifier; } }
public static boolean isShouldBeQuoted(String columnName) { for (char character : columnName.toCharArray()) { if (Character.isUpperCase(character)) { return true; } if (!StringUtils.isPartOfAnsiSQLIdentifier(character)) { return true; } if (RESERVED_KEYWORDS_SET.contains(columnName.toUpperCase())) { return true; } } return false; }
public static ShuffleType getShuffleType(String shuffleType) { if (StringUtils.isEmpty(shuffleType)) return ShuffleType.NONE_SHUFFLE; return ShuffleType.valueOf(shuffleType); }
public static void main(String[] args) throws Exception { Thread.setDefaultUncaughtExceptionHandler(new TajoUncaughtExceptionHandler()); StringUtils.startupShutdownMessage(TajoWorker.class, args, LOG); TajoConf tajoConf = new TajoConf(); tajoConf.addResource(new Path(TajoConstants.SYSTEM_CONF_FILENAME)); try { TajoWorker tajoWorker = new TajoWorker(); tajoWorker.startWorker(tajoConf, args); } catch (Throwable t) { LOG.fatal("Error starting TajoWorker", t); System.exit(-1); } } }
private PartitionDescProto getPartitionDesc(Path tablePath, Path partitionPath, FileSystem fs) throws IOException { String partitionName = StringUtils.unescapePathName(partitionPath.toString()); int startIndex = partitionName.indexOf(tablePath.toString()) + tablePath.toString().length(); partitionName = partitionName.substring(startIndex + File.separator.length()); CatalogProtos.PartitionDescProto.Builder builder = CatalogProtos.PartitionDescProto.newBuilder(); builder.setPartitionName(partitionName); String[] partitionKeyPairs = partitionName.split("/"); for (String partitionKeyPair : partitionKeyPairs) { String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); keyBuilder.setPartitionValue(split[1]); builder.addPartitionKeys(keyBuilder.build()); } builder.setPath(partitionPath.toString()); ContentSummary contentSummary = fs.getContentSummary(partitionPath); builder.setNumBytes(contentSummary.getLength()); return builder.build(); }
public static String denormalizePart(String identifier) { if (isShouldBeQuoted(identifier)) { return StringUtils.doubleQuote(identifier); } else { return identifier; } }
public static boolean isShouldBeQuoted(String interned) { for (char character : interned.toCharArray()) { if (Character.isUpperCase(character)) { return true; } if (!StringUtils.isPartOfAnsiSQLIdentifier(character)) { return true; } if (RESERVED_KEYWORDS_SET.contains(interned.toUpperCase())) { return true; } } return false; }
public TooLargeInputForCrossJoinException(String[] relations, long currentBroadcastThreshold) { super(ResultCode.TOO_LARGE_INPUT_FOR_CROSS_JOIN, StringUtils.join(relations), currentBroadcastThreshold + " KB"); } }
public static String getInternalErrorMessage(Throwable t) { if (t != null) { String message = t.getMessage(); if (StringUtils.isEmpty(message)) { message = ExceptionUtils.getMessage(t); } return String.format(MESSAGES.get(INTERNAL_ERROR).getFirst(), message); } else { return getInternalErrorMessage(); } }
public static void main(String[] args) throws Exception { Thread.setDefaultUncaughtExceptionHandler(new TajoUncaughtExceptionHandler()); StringUtils.startupShutdownMessage(TajoMaster.class, args, LOG); try { TajoMaster master = new TajoMaster(); TajoConf conf = new TajoConf(); master.init(conf); master.start(); } catch (Throwable t) { LOG.fatal("Error starting TajoMaster", t); System.exit(-1); } } }
public static String escapePathName(String path) { return escapePathName(path, null); }
/** * Add partition information to TableStats for storing to CatalogStore. * * @param partition partition name * @throws IOException */ private void addPartition(String partition) throws IOException { PartitionDescProto.Builder builder = PartitionDescProto.newBuilder(); builder.setPartitionName(partition); String[] partitionKeyPairs = partition.split("/"); for(int i = 0; i < partitionKeyPairs.length; i++) { String partitionKeyPair = partitionKeyPairs[i]; String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); // Partition path have been escaped to avoid URISyntaxException. But partition value of partition keys table // need to contain unescaped value for comparing filter conditions in select statement. keyBuilder.setPartitionValue(StringUtils.unescapePathName(split[1])); builder.addPartitionKeys(keyBuilder.build()); } if (this.plan.getUri() == null) { // In CTAS, the uri would be null. So, it get the uri from staging directory. int endIndex = storeTablePath.toString().indexOf(FileTablespace.TMP_STAGING_DIR_PREFIX); String outputPath = storeTablePath.toString().substring(0, endIndex); builder.setPath(outputPath + partition); } else { builder.setPath(this.plan.getUri().toString() + "/" + partition); } context.addPartition(builder.build()); }
protected void compile(String pattern) throws PatternSyntaxException { String escaped = StringUtils.escapeRegexp(pattern); String regex = escaped.replace("_", ".").replace("%", ".*"); int flags = Pattern.DOTALL; if (caseInsensitive) { flags |= Pattern.CASE_INSENSITIVE; } this.compiled = Pattern.compile(regex, flags); }
@Override public String toString() { return "TruncateTable (table=" + StringUtils.join(tableNames, ", ") + ")"; }