embulk-input-mysql 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c3e3dad019013bb986f49d14f4433bb9af61ce2
4
- data.tar.gz: 56aa87f8568309096537d4d760ff6fa2dc3257f8
3
+ metadata.gz: 1563f9a4c9fdb1322b933d81c68b64a886e804db
4
+ data.tar.gz: 38eb126ea3df749ac37661d04d19c510842b7d4f
5
5
  SHA512:
6
- metadata.gz: 13e919b71398b431bfea7c45ed16c53c7eb2f155bef1a10e1f39bb45619a3ee574f1abfa765565732496d349aa2c5ef1e84a6445fff2c233eacdc214a9bacb54
7
- data.tar.gz: 89a75867a786ad6db110bf242e972a1147fbe754e7a879108f9e4515ee32e50ef87203706e67542be462b1fa2c4d9af2fda4354700e3c0beb0d1d964fd104841
6
+ metadata.gz: 9e077bc4ffb80e9a6179def26c1ae3d5ac796707548e6868bfae34677889c4a6229a518a46f024c49ed90a2b20e330c9ce7c432e19421e434ad7c7bcd962e643
7
+ data.tar.gz: 38e6f22cf05ad7ee8d6eb753304241c0fbd733afacc55d867563e8b0866573773adf5c6ccb2822c3e46a86ca35fb6553d7c1df7ee71394990a440c62da45e48b
data/README.md CHANGED
@@ -14,7 +14,7 @@ MySQL input plugins for Embulk loads records from MySQL.
14
14
  - **user**: database login user name (string, required)
15
15
  - **password**: database login password (string, default: "")
16
16
  - **database**: destination database name (string, required)
17
- - **table**: destination name (string, required)
17
+ - **table**: destination table name (string, required)
18
18
  - **select**: comma-separated list of columns to select (string, default: "*")
19
19
  - **where**: WHERE condition to filter the rows (string, default: no-condition)
20
20
  - **fetch_rows**: number of rows to fetch one time (integer, default: 10000)
@@ -13,17 +13,44 @@ import org.embulk.input.mysql.MySQLInputConnection;
13
13
  public class MySQLInputPlugin
14
14
  extends AbstractJdbcInputPlugin
15
15
  {
16
- private static final int DEFAULT_PORT = 3306;
16
+ public interface MySQLPluginTask
17
+ extends PluginTask
18
+ {
19
+ @Config("host")
20
+ public String getHost();
21
+
22
+ @Config("port")
23
+ @ConfigDefault("3306")
24
+ public int getPort();
25
+
26
+ @Config("user")
27
+ public String getUser();
28
+
29
+ @Config("password")
30
+ @ConfigDefault("\"\"")
31
+ public String getPassword();
32
+
33
+ @Config("database")
34
+ public String getDatabase();
35
+ }
36
+
37
+ @Override
38
+ protected Class<? extends PluginTask> getTaskClass()
39
+ {
40
+ return MySQLPluginTask.class;
41
+ }
17
42
 
18
43
  @Override
19
44
  protected MySQLInputConnection newConnection(PluginTask task) throws SQLException
20
45
  {
46
+ MySQLPluginTask t = (MySQLPluginTask) task;
47
+
21
48
  String url = String.format("jdbc:mysql://%s:%d/%s",
22
- task.getHost(), task.getPort().or(DEFAULT_PORT), task.getDatabase());
49
+ t.getHost(), t.getPort(), t.getDatabase());
23
50
 
24
51
  Properties props = new Properties();
25
- props.setProperty("user", task.getUser());
26
- props.setProperty("password", task.getPassword());
52
+ props.setProperty("user", t.getUser());
53
+ props.setProperty("password", t.getPassword());
27
54
 
28
55
  // convert 0000-00-00 to NULL to avoid this exceptoin:
29
56
  // java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
@@ -54,16 +81,16 @@ public class MySQLInputPlugin
54
81
  // break;
55
82
  //}
56
83
 
57
- if (task.getFetchRows() == 1) {
84
+ if (t.getFetchRows() == 1) {
58
85
  logger.info("Fetch size is 1. Fetching rows one by one.");
59
- } else if (task.getFetchRows() <= 0) {
86
+ } else if (t.getFetchRows() <= 0) {
60
87
  logger.info("Fetch size is set to -1. Fetching all rows at once.");
61
88
  } else {
62
- logger.info("Fetch size is {}. Using server-side prepared statement.", task.getFetchRows());
89
+ logger.info("Fetch size is {}. Using server-side prepared statement.", t.getFetchRows());
63
90
  props.setProperty("useCursorFetch", "true");
64
91
  }
65
92
 
66
- props.putAll(task.getOptions());
93
+ props.putAll(t.getOptions());
67
94
 
68
95
  Driver driver;
69
96
  try {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-input-mysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
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-02-25 00:00:00.000000000 Z
11
+ date: 2015-02-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Selects records from a table.
14
14
  email:
@@ -22,8 +22,8 @@ files:
22
22
  - lib/embulk/input/mysql.rb
23
23
  - src/main/java/org/embulk/input/MySQLInputPlugin.java
24
24
  - src/main/java/org/embulk/input/mysql/MySQLInputConnection.java
25
- - classpath/embulk-input-jdbc-0.2.3.jar
26
- - classpath/embulk-input-mysql-0.2.3.jar
25
+ - classpath/embulk-input-jdbc-0.3.0.jar
26
+ - classpath/embulk-input-mysql-0.3.0.jar
27
27
  - classpath/mysql-connector-java-5.1.34.jar
28
28
  homepage: https://github.com/embulk/embulk-input-jdbc
29
29
  licenses:
Binary file