embulk-output-mysql 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/classpath/embulk-output-jdbc-0.2.3.jar +0 -0
- data/classpath/embulk-output-mysql-0.2.3.jar +0 -0
- data/src/main/java/org/embulk/output/MySQLOutputPlugin.java +4 -5
- data/src/main/java/org/embulk/output/mysql/MySQLBatchUpsert.java +22 -0
- data/src/main/java/org/embulk/output/mysql/MySQLOutputConnection.java +32 -3
- metadata +5 -4
- data/classpath/embulk-output-jdbc-0.2.2.jar +0 -0
- data/classpath/embulk-output-mysql-0.2.2.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c26cb004402026d14a78720765e9c43fbf51837b
|
4
|
+
data.tar.gz: 971f0061e593d174aa77b55bc2a9526b7baeb754
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e360066024cc173d4237fc9469acba6dd6feaa5d54f6e5f2faf868e688b180ff8e345bc9136cfd34497de0840085efa8fe4f27916c032f5b1b07cc624d90adb
|
7
|
+
data.tar.gz: 3fb0cc71310ce53577b20aafe9d18e07d23f38072e9110da53d67afe4cd22d836190a8231cac54150420387d99d109e5ad2589c86570a927c915752c1453d2ad
|
Binary file
|
Binary file
|
@@ -3,14 +3,12 @@ package org.embulk.output;
|
|
3
3
|
import java.util.Properties;
|
4
4
|
import java.io.IOException;
|
5
5
|
import java.sql.SQLException;
|
6
|
-
|
7
|
-
import org.embulk.
|
6
|
+
|
7
|
+
import org.embulk.output.mysql.MySQLBatchUpsert;
|
8
8
|
import org.embulk.config.Config;
|
9
9
|
import org.embulk.config.ConfigDefault;
|
10
10
|
import org.embulk.output.jdbc.AbstractJdbcOutputPlugin;
|
11
|
-
import org.embulk.output.jdbc.JdbcOutputConnection;
|
12
11
|
import org.embulk.output.jdbc.BatchInsert;
|
13
|
-
import org.embulk.output.jdbc.JdbcOutputConnector;
|
14
12
|
import org.embulk.output.mysql.MySQLOutputConnector;
|
15
13
|
import org.embulk.output.mysql.MySQLBatchInsert;
|
16
14
|
|
@@ -96,6 +94,7 @@ public class MySQLOutputPlugin
|
|
96
94
|
@Override
|
97
95
|
protected BatchInsert newBatchInsert(PluginTask task) throws IOException, SQLException
|
98
96
|
{
|
99
|
-
|
97
|
+
MySQLOutputConnector connector = getConnector(task, true);
|
98
|
+
return task.getMode().isMerge() ? new MySQLBatchUpsert(connector) : new MySQLBatchInsert(connector);
|
100
99
|
}
|
101
100
|
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
package org.embulk.output.mysql;
|
2
|
+
|
3
|
+
import org.embulk.output.jdbc.JdbcOutputConnection;
|
4
|
+
import org.embulk.output.jdbc.JdbcSchema;
|
5
|
+
import java.io.IOException;
|
6
|
+
import java.sql.PreparedStatement;
|
7
|
+
import java.sql.SQLException;
|
8
|
+
|
9
|
+
public class MySQLBatchUpsert extends MySQLBatchInsert {
|
10
|
+
|
11
|
+
public MySQLBatchUpsert(MySQLOutputConnector connector) throws IOException, SQLException {
|
12
|
+
super(connector);
|
13
|
+
}
|
14
|
+
|
15
|
+
@Override
|
16
|
+
protected PreparedStatement newPreparedStatement(JdbcOutputConnection connection,
|
17
|
+
String loadTable, JdbcSchema insertSchema) throws SQLException
|
18
|
+
{
|
19
|
+
return connection.prepareUpsertSql(loadTable, insertSchema);
|
20
|
+
}
|
21
|
+
|
22
|
+
}
|
@@ -2,10 +2,9 @@ package org.embulk.output.mysql;
|
|
2
2
|
|
3
3
|
import java.sql.Connection;
|
4
4
|
import java.sql.SQLException;
|
5
|
-
|
6
|
-
import org.embulk.output.jdbc.
|
5
|
+
|
6
|
+
import org.embulk.output.jdbc.JdbcSchema;
|
7
7
|
import org.embulk.output.jdbc.JdbcOutputConnection;
|
8
|
-
import org.embulk.output.jdbc.JdbcColumn;
|
9
8
|
|
10
9
|
public class MySQLOutputConnection
|
11
10
|
extends JdbcOutputConnection
|
@@ -17,6 +16,36 @@ public class MySQLOutputConnection
|
|
17
16
|
connection.setAutoCommit(autoCommit);
|
18
17
|
}
|
19
18
|
|
19
|
+
@Override
|
20
|
+
protected String buildPrepareUpsertSql(String toTable, JdbcSchema toTableSchema) throws SQLException
|
21
|
+
{
|
22
|
+
StringBuilder sb = new StringBuilder();
|
23
|
+
|
24
|
+
sb.append("INSERT INTO ");
|
25
|
+
quoteIdentifierString(sb, toTable);
|
26
|
+
|
27
|
+
sb.append(" (");
|
28
|
+
for (int i=0; i < toTableSchema.getCount(); i++) {
|
29
|
+
if(i != 0) { sb.append(", "); }
|
30
|
+
quoteIdentifierString(sb, toTableSchema.getColumnName(i));
|
31
|
+
}
|
32
|
+
sb.append(") VALUES (");
|
33
|
+
for(int i=0; i < toTableSchema.getCount(); i++) {
|
34
|
+
if(i != 0) { sb.append(", "); }
|
35
|
+
sb.append("?");
|
36
|
+
}
|
37
|
+
sb.append(")");
|
38
|
+
|
39
|
+
sb.append(" ON DUPLICATE KEY UPDATE ");
|
40
|
+
for (int i=0; i < toTableSchema.getCount(); i++) {
|
41
|
+
if(i != 0) { sb.append(", "); }
|
42
|
+
final String columnName = quoteIdentifierString(toTableSchema.getColumnName(i));
|
43
|
+
sb.append(columnName).append(" = VALUES(").append(columnName).append(")");
|
44
|
+
}
|
45
|
+
|
46
|
+
return sb.toString();
|
47
|
+
}
|
48
|
+
|
20
49
|
@Override
|
21
50
|
protected String convertTypeName(String typeName)
|
22
51
|
{
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-mysql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Inserts or updates records to a table.
|
14
14
|
email:
|
@@ -22,10 +22,11 @@ files:
|
|
22
22
|
- lib/embulk/output/mysql.rb
|
23
23
|
- src/main/java/org/embulk/output/MySQLOutputPlugin.java
|
24
24
|
- src/main/java/org/embulk/output/mysql/MySQLBatchInsert.java
|
25
|
+
- src/main/java/org/embulk/output/mysql/MySQLBatchUpsert.java
|
25
26
|
- src/main/java/org/embulk/output/mysql/MySQLOutputConnection.java
|
26
27
|
- src/main/java/org/embulk/output/mysql/MySQLOutputConnector.java
|
27
|
-
- classpath/embulk-output-jdbc-0.2.
|
28
|
-
- classpath/embulk-output-mysql-0.2.
|
28
|
+
- classpath/embulk-output-jdbc-0.2.3.jar
|
29
|
+
- classpath/embulk-output-mysql-0.2.3.jar
|
29
30
|
- classpath/mysql-connector-java-5.1.34.jar
|
30
31
|
homepage: https://github.com/embulk/embulk-output-jdbc
|
31
32
|
licenses:
|
Binary file
|
Binary file
|