WriteInfo writeInfo = locationService.getPartitionWriteInfo(hiveInsertTableHandle.getLocationHandle(), Optional.empty(), partitionName); Slice serializedPartitionUpdate = Slices.wrappedBuffer( partitionUpdateJsonCodec.toJsonBytes(
protected Path getStagingPathRoot(ConnectorInsertTableHandle insertTableHandle) { HiveInsertTableHandle handle = (HiveInsertTableHandle) insertTableHandle; WriteInfo writeInfo = getLocationService().getQueryWriteInfo(handle.getLocationHandle()); if (writeInfo.getWriteMode() != STAGE_AND_MOVE_TO_TARGET_DIRECTORY) { throw new AssertionError("writeMode is not STAGE_AND_MOVE_TO_TARGET_DIRECTORY"); } return writeInfo.getWritePath(); }
protected Path getTargetPathRoot(ConnectorInsertTableHandle insertTableHandle) { HiveInsertTableHandle hiveInsertTableHandle = (HiveInsertTableHandle) insertTableHandle; return getLocationService() .getQueryWriteInfo(hiveInsertTableHandle.getLocationHandle()) .getTargetPath(); }
@Test public void testTemporaryStagingDirectorySessionProperties() { String tableName = "test_temporary_staging_directory_session_properties"; assertUpdate(format("CREATE TABLE %s(i int)", tableName)); Session session = Session.builder(getSession()) .setCatalogSessionProperty("hive", "temporary_staging_directory_enabled", "false") .build(); HiveInsertTableHandle hiveInsertTableHandle = getHiveInsertTableHandle(session, tableName); assertEquals(hiveInsertTableHandle.getLocationHandle().getWritePath(), hiveInsertTableHandle.getLocationHandle().getTargetPath()); session = Session.builder(getSession()) .setCatalogSessionProperty("hive", "temporary_staging_directory_enabled", "true") .setCatalogSessionProperty("hive", "temporary_staging_directory_path", "/tmp/custom/temporary-${USER}") .build(); hiveInsertTableHandle = getHiveInsertTableHandle(session, tableName); assertNotEquals(hiveInsertTableHandle.getLocationHandle().getWritePath(), hiveInsertTableHandle.getLocationHandle().getTargetPath()); assertTrue(hiveInsertTableHandle.getLocationHandle().getWritePath().toString().startsWith("file:/tmp/custom/temporary-")); assertUpdate("DROP TABLE " + tableName); }
Optional<Path> writePath = locationService.writePathRoot(handle.getLocationHandle()); if (writePath.isPresent()) { cleanupTempDirectory(writePath.get().toString(), handle.getFilePrefix(), "insert"); String tableDirectory = locationService.targetPathRoot(handle.getLocationHandle()).toString(); locationsToClean.add(tableDirectory);
protected Set<String> listAllDataFiles(ConnectorInsertTableHandle tableHandle) throws IOException { HiveInsertTableHandle hiveInsertTableHandle = (HiveInsertTableHandle) tableHandle; Path writePath = new Path(getLocationService(hiveInsertTableHandle.getSchemaName()).writePathRoot(hiveInsertTableHandle.getLocationHandle()).get().toString()); return listAllDataFiles(writePath); }
protected Path getStagingPathRoot(ConnectorInsertTableHandle insertTableHandle) { HiveInsertTableHandle handle = (HiveInsertTableHandle) insertTableHandle; WriteInfo writeInfo = getLocationService().getQueryWriteInfo(handle.getLocationHandle()); if (writeInfo.getWriteMode() != STAGE_AND_MOVE_TO_TARGET_DIRECTORY) { throw new AssertionError("writeMode is not STAGE_AND_MOVE_TO_TARGET_DIRECTORY"); } return writeInfo.getWritePath(); }
protected Path getTargetPathRoot(ConnectorInsertTableHandle insertTableHandle) { HiveInsertTableHandle hiveInsertTableHandle = (HiveInsertTableHandle) insertTableHandle; return getLocationService() .getQueryWriteInfo(hiveInsertTableHandle.getLocationHandle()) .getTargetPath(); }