mirror of
https://github.com/alibaba/DataX.git
synced 2025-05-03 06:51:39 +08:00
escape the keywords for splitPk
This commit is contained in:
parent
2d37cf10b9
commit
1a5f1f0288
@ -53,6 +53,21 @@ public class OceanBaseReader extends Reader {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Configuration> split(int adviceNumber) {
|
public List<Configuration> split(int adviceNumber) {
|
||||||
|
String splitPk = originalConfig.getString(Key.SPLIT_PK);
|
||||||
|
List<String> quotedColumns = originalConfig.getList(Key.COLUMN_LIST, String.class);
|
||||||
|
if (splitPk != null && splitPk.length() > 0 && quotedColumns != null) {
|
||||||
|
String escapeChar = ObReaderUtils.isOracleMode(originalConfig.getString(ObReaderKey.OB_COMPATIBILITY_MODE))
|
||||||
|
? "\"" : "`";
|
||||||
|
if (!splitPk.startsWith(escapeChar) && !splitPk.endsWith(escapeChar)) {
|
||||||
|
splitPk = escapeChar + splitPk + escapeChar;
|
||||||
|
}
|
||||||
|
for (String column : quotedColumns) {
|
||||||
|
if (column.equals(splitPk)) {
|
||||||
|
LOG.info("splitPk is an ob reserved keyword, set to {}", splitPk);
|
||||||
|
originalConfig.set(Key.SPLIT_PK, splitPk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return this.readerJob.split(this.originalConfig, adviceNumber);
|
return this.readerJob.split(this.originalConfig, adviceNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user