in phoenix5-hive4/src/main/java/org/apache/phoenix/hive/PhoenixRecordUpdater.java [67:133]
public PhoenixRecordUpdater(Path path, AcidOutputFormat.Options options) throws IOException {
this.config = options.getConfiguration();
tableName = config.get(PhoenixStorageHandlerConstants.PHOENIX_TABLE_NAME);
Properties props = new Properties();
try {
// Disable WAL
String walConfigName = tableName.toLowerCase() + PhoenixStorageHandlerConstants
.DISABLE_WAL;
boolean disableWal = config.getBoolean(walConfigName, false);
if (disableWal) {
if (LOG.isDebugEnabled()) {
LOG.debug(walConfigName + " is true. batch.mode will be set true.");
}
props.setProperty(PhoenixStorageHandlerConstants.BATCH_MODE, "true");
}
this.conn = PhoenixConnectionUtil.getInputConnection(config, props);
if (disableWal) {
metaDataClient = new MetaDataClient((PhoenixConnection) conn);
if (!PhoenixUtil.isDisabledWal(metaDataClient, tableName)) {
// execute alter tablel statement if disable_wal is not true.
try {
PhoenixUtil.alterTableForWalDisable(conn, tableName, true);
} catch (ConcurrentTableMutationException e) {
if (LOG.isWarnEnabled()) {
LOG.warn("Concurrent modification of disableWAL");
}
}
if (LOG.isDebugEnabled()) {
LOG.debug(tableName + "s wal disabled.");
}
// restore original value of disable_wal at the end.
restoreWalMode = true;
}
}
this.batchSize = PhoenixConfigurationUtil.getBatchSize(config);
if (LOG.isDebugEnabled()) {
LOG.debug("Batch-size : " + batchSize);
}
String upsertQuery = QueryUtil.constructUpsertStatement(tableName, PhoenixUtil
.getColumnInfoList(conn, tableName));
if (LOG.isDebugEnabled()) {
LOG.debug("Upsert-query : " + upsertQuery);
}
this.pstmt = this.conn.prepareStatement(upsertQuery);
} catch (SQLException e) {
throw new IOException(e);
}
this.objInspector = options.getInspector();
try {
phoenixSerializer = new PhoenixSerializer(config, options.getTableProperties());
} catch (SerDeException e) {
throw new IOException(e);
}
}