embulk-output-oracle 0.7.10 → 0.7.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -0
  3. data/build.gradle +1 -1
  4. data/classpath/{embulk-output-jdbc-0.7.10.jar → embulk-output-jdbc-0.7.11.jar} +0 -0
  5. data/classpath/{embulk-output-oracle-0.7.10.jar → embulk-output-oracle-0.7.11.jar} +0 -0
  6. data/src/test/java/org/embulk/output/oracle/BasicTest.java +450 -0
  7. data/src/test/java/org/embulk/output/oracle/DummyFileSystem.java +96 -0
  8. data/src/test/java/org/embulk/output/oracle/DummyFileSystemProvider.java +154 -0
  9. data/src/test/java/org/embulk/output/oracle/DummyPath.java +188 -0
  10. data/src/test/java/org/embulk/output/oracle/OracleTests.java +90 -0
  11. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/setup.sql +54 -0
  12. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test1.csv +4 -0
  13. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_expected.diff +2 -0
  14. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert.yml +2 -0
  15. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_create_expected.csv +3 -0
  16. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct.yml +2 -0
  17. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_direct.yml +3 -0
  18. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_large.yml +5 -0
  19. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_multibyte_table.yml +2 -0
  20. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci.yml +5 -0
  21. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci_large.yml +6 -0
  22. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci_multibyte_table.yml +5 -0
  23. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_empty_expected.csv +1 -0
  24. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_expected.csv +4 -0
  25. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_large_expected.csv +9999 -0
  26. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_multibyte_table.yml +2 -0
  27. data/src/test/resources/{oracle/data/test3/test3.csv → org/embulk/output/oracle/test/expect/basic/test_large.csv} +3 -3
  28. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column.csv +4 -0
  29. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column.yml +2 -0
  30. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column_options.csv +4 -0
  31. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column_options.yml +5 -0
  32. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_table.yml +2 -0
  33. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge.csv +6 -0
  34. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge.yml +2 -0
  35. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_expected.csv +6 -0
  36. data/src/test/resources/{oracle/data/test5/test5.csv → org/embulk/output/oracle/test/expect/basic/test_merge_keys.csv} +5 -4
  37. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys.yml +3 -0
  38. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys_expected.csv +5 -0
  39. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule.csv +6 -0
  40. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule.yml +3 -0
  41. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule_expected.csv +6 -0
  42. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace.yml +2 -0
  43. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_column_options.yml +10 -0
  44. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_longname.yml +2 -0
  45. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_longname_multibyte.yml +2 -0
  46. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_oci.yml +3 -0
  47. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp.csv +4 -0
  48. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp.yml +5 -0
  49. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp_expected.csv +4 -0
  50. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert.yml +2 -0
  51. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert_expected.csv +3 -0
  52. data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert_oci.yml +3 -0
  53. metadata +51 -36
  54. data/src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java +0 -185
  55. data/src/test/java/org/embulk/input/filesplit/PartialFile.java +0 -50
  56. data/src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java +0 -154
  57. data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +0 -887
  58. data/src/test/resources/oracle/data/test1/test1.csv +0 -3
  59. data/src/test/resources/oracle/data/test4/test4.csv +0 -5
  60. data/src/test/resources/oracle/yml/test-insert-direct-direct-method.yml +0 -27
  61. data/src/test/resources/oracle/yml/test-insert-direct-empty.yml +0 -26
  62. data/src/test/resources/oracle/yml/test-insert-direct-oci-method-large.yml +0 -29
  63. data/src/test/resources/oracle/yml/test-insert-direct-oci-method-multibyte.yml +0 -29
  64. data/src/test/resources/oracle/yml/test-insert-direct-oci-method-split.yml +0 -29
  65. data/src/test/resources/oracle/yml/test-insert-direct-oci-method.yml +0 -29
  66. data/src/test/resources/oracle/yml/test-insert-direct.yml +0 -26
  67. data/src/test/resources/oracle/yml/test-insert-empty.yml +0 -28
  68. data/src/test/resources/oracle/yml/test-insert.yml +0 -26
  69. data/src/test/resources/oracle/yml/test-lower-column-options.yml +0 -29
  70. data/src/test/resources/oracle/yml/test-lower-column.yml +0 -26
  71. data/src/test/resources/oracle/yml/test-lower-table.yml +0 -26
  72. data/src/test/resources/oracle/yml/test-merge-keys.yml +0 -23
  73. data/src/test/resources/oracle/yml/test-merge-rule.yml +0 -23
  74. data/src/test/resources/oracle/yml/test-merge.yml +0 -22
  75. data/src/test/resources/oracle/yml/test-replace-empty.yml +0 -33
  76. data/src/test/resources/oracle/yml/test-replace-long-name-multibyte.yml +0 -33
  77. data/src/test/resources/oracle/yml/test-replace-long-name.yml +0 -33
  78. data/src/test/resources/oracle/yml/test-replace-oci-method.yml +0 -34
  79. data/src/test/resources/oracle/yml/test-replace.yml +0 -33
  80. data/src/test/resources/oracle/yml/test-string-timestamp.yml +0 -29
  81. data/src/test/resources/oracle/yml/test-truncate-insert-oci-method.yml +0 -27
  82. data/src/test/resources/oracle/yml/test-truncate-insert.yml +0 -26
  83. data/src/test/resources/oracle/yml/test-url.yml +0 -25
@@ -1,5 +1,6 @@
1
- 0001,ABCDE,abcde,0,123.45,2015/03/05,2015/03/05 12:34:56
2
- 0002,AB,abcdef,-9999,-99999999.99,2015/03/06,2015/03/06 23:59:59
1
+ ID:string,VARCHAR2_ITEM:string,NVARCHAR2_ITEM:string,INTEGER_ITEM:long,NUMBER_ITEM:string,DATE_ITEM:timestamp,TIMESTAMP_ITEM:timestamp
2
+ 0001,ABCDE,abcde,0,123.45,2015-03-05 00:00:00.000 +0900,2015-03-05 12:34:56.000 +0900
3
+ 0002,AB,abcdef,-9999,-99999999.99,2015-03-06 00:00:00.000 +0900,2015-03-06 23:59:59.000 +0900
3
4
  0003,,,,,,
4
5
  0004,XXXXXX,XXXXXX,1234,12345678.9,,
5
6
  0005,XXXXXX,XXXXXX,1234,12345678.9,,
@@ -9996,4 +9997,3 @@
9996
9997
  9996,XXXXXX,XXXXXX,1234,12345678.9,,
9997
9998
  9997,XXXXXX,XXXXXX,1234,12345678.9,,
9998
9999
  9998,XXXXXX,XXXXXX,1234,12345678.9,,
9999
- 9999,XXXXXX,XXXXXX,1234,12345678.9,,
@@ -0,0 +1,4 @@
1
+ id:string,varchar2_item:string,nvarchar2_item:string,integer_item:long,number_item:string,date_item:timestamp,timestamp_item:timestamp
2
+ A001,ABCDE,abcde,0,123.45,2015-03-05 00:00:00.000 +0900,2015-03-05 12:34:56.000 +0900
3
+ A002,AB,abcdef,-9999,-99999999.99,2015-03-06 00:00:00.000 +0900,2015-03-06 23:59:59.000 +0900
4
+ A003,,,,,,
@@ -0,0 +1,4 @@
1
+ id:string,varchar2_item:string,nvarchar2_item:string,integer_item:long,number_item:string,date_item:string,timestamp_item:string
2
+ A001,ABCDE,abcde,0,123.45,2015/03/04,2015/03/05 03:34:56
3
+ A002,AB,abcdef,-9999,-99999999.99,2015/03/05,2015/03/06 14:59:59
4
+ A003,,,,,,
@@ -0,0 +1,5 @@
1
+ table: TEST1
2
+ mode: insert_direct
3
+ column_options:
4
+ date_item: {value_type: pass}
5
+ timestamp_item: {value_type: pass}
@@ -0,0 +1,6 @@
1
+ ID:string,VARCHAR2_ITEM:string,NUMBER_ITEM:double
2
+ A001,aaa,99.99
3
+ A002,bbb,88.88
4
+ A003,ccc,77.77
5
+ A004,,
6
+ A005,,
@@ -0,0 +1,6 @@
1
+ A001,aaa , 99.99
2
+ A002,bbb , 88.88
3
+ A003,ccc , 77.77
4
+ A004, ,
5
+ A005, ,
6
+ A006,FFF , 0
@@ -1,4 +1,5 @@
1
- A004,BBB,22.21
2
- A005,BBB,22.22
3
- A006,BBB,22.23
4
- A007,CCC,33.33
1
+ ID:string,VARCHAR2_ITEM:string,NUMBER_ITEM:double
2
+ A004,BBB,22.21
3
+ A005,BBB,22.22
4
+ A006,BBB,22.23
5
+ A007,CCC,33.33
@@ -0,0 +1,3 @@
1
+ table: TEST_MERGE1
2
+ mode: merge
3
+ merge_keys: [VARCHAR2_ITEM,NUMBER_ITEM]
@@ -0,0 +1,5 @@
1
+ A001,AAA , 11.11
2
+ A004,BBB , 22.21
3
+ A005,BBB , 22.22
4
+ A006,BBB , 22.23
5
+ A007,CCC , 33.33
@@ -0,0 +1,6 @@
1
+ ID:string,VARCHAR2_ITEM:string,NUMBER_ITEM:double
2
+ A001,aaa,99.99
3
+ A002,bbb,88.88
4
+ A003,ccc,77.77
5
+ A004,,
6
+ A005,,
@@ -0,0 +1,3 @@
1
+ table: TEST_MERGE1
2
+ mode: merge
3
+ merge_rule: ["VARCHAR2_ITEM = 'x'", "NUMBER_ITEM = T.NUMBER_ITEM + S.NUMBER_ITEM"]
@@ -0,0 +1,6 @@
1
+ A001,aaa , 99.99
2
+ A002,x , 111.1
3
+ A003,ccc , 77.77
4
+ A004,x ,
5
+ A005, ,
6
+ A006,FFF , 66.66
@@ -0,0 +1,10 @@
1
+ table: TEST1
2
+ mode: replace
3
+ column_options:
4
+ ID: {type: 'CHAR(4)'}
5
+ VARCHAR2_ITEM: {type: 'VARCHAR2(6)'}
6
+ NVARCHAR2_ITEM: {type: 'NVARCHAR2(6)'}
7
+ INTEGER_ITEM: {type: 'NUMBER(4,0)'}
8
+ NUMBER_ITEM: {type: 'NUMBER(10,2)'}
9
+ DATE_ITEM: {type: 'DATE'}
10
+ TIMESTAMP_ITEM: {type: 'TIMESTAMP'}
@@ -0,0 +1,2 @@
1
+ table: TEST12345678901234567890123456
2
+ mode: replace
@@ -0,0 +1,2 @@
1
+ table: TEST123456789012345678
2
+ mode: replace
@@ -0,0 +1,3 @@
1
+ table: TEST1
2
+ mode: replace
3
+ insert_method: oci
@@ -0,0 +1,4 @@
1
+ ID:string,VARCHAR2_ITEM:string,NVARCHAR2_ITEM:string,INTEGER_ITEM:long,NUMBER_ITEM:string,DATE_ITEM:string,TIMESTAMP_ITEM:string
2
+ A001,ABCDE,abcde,0,123.45,2015/03/04,2015/03/05 03:34:56
3
+ A002,AB,abcdef,-9999,-99999999.99,2015/03/05,2015/03/06 14:59:59
4
+ A003,,,,,,
@@ -0,0 +1,5 @@
1
+ table: TEST1
2
+ mode: insert_direct
3
+ column_options:
4
+ DATE_ITEM: {value_type: pass}
5
+ TIMESTAMP_ITEM: {value_type: pass}
@@ -0,0 +1,4 @@
1
+ 9999,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
2
+ A001,0,1234,123456,12345678901,0,1.23,3.456,12.3400,123.4567,0.1234567,0.12345678901234,a ,b,c,A ,B,C,2015-12-31,2016-12-31 16:02:03.123,2018-01-01 01:02:03.1234567,2018-12-31 16:02:03.12,2019-12-31 16:02:00,03:04:05.1234567,21:07:08.12
3
+ A002,255,-32768,-2147483648,-9223372036854775808,1,-9999999999.99,-99.999,-214748.3648,-922337203685477.5808,-9.9989996E+9,-9.9999999999900006E+17,あい,あいうえ,あいうえお,かき ,かきくけ,かきくけこ,2016-12-30,2017-12-31 14:59:59.997,2018-12-31 23:59:59.9999999,2019-12-31 14:59:59.99,2020-12-31 15:00:00,23:59:59.9999999,14:59:59.99
4
+ A003,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
@@ -0,0 +1,3 @@
1
+ A001,ABCDE ,abcde , 0, 123.45,15-03-04,15-03-05 03:34:56.000000000
2
+ A002,AB ,abcdef, -9999, -100000000,15-03-05,15-03-06 14:59:59.000000000
3
+ A003, , , , , ,
@@ -0,0 +1,3 @@
1
+ table: TEST1
2
+ mode: truncate_insert
3
+ insert_method: oci
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-output-oracle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.10
4
+ version: 0.7.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-14 00:00:00.000000000 Z
11
+ date: 2017-08-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Inserts or updates records to a table.
14
14
  email:
@@ -19,8 +19,8 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - README.md
21
21
  - build.gradle
22
- - classpath/embulk-output-jdbc-0.7.10.jar
23
- - classpath/embulk-output-oracle-0.7.10.jar
22
+ - classpath/embulk-output-jdbc-0.7.11.jar
23
+ - classpath/embulk-output-oracle-0.7.11.jar
24
24
  - lib/embulk/native/x86_64-linux/libembulk-output-oracle-oci.so
25
25
  - lib/embulk/native/x86_64-windows/embulk-output-oracle-oci.dll
26
26
  - lib/embulk/output/oracle.rb
@@ -44,38 +44,53 @@ files:
44
44
  - src/main/java/org/embulk/output/oracle/oci/PrimitiveBulkOCI.java
45
45
  - src/main/java/org/embulk/output/oracle/oci/RowBuffer.java
46
46
  - src/main/java/org/embulk/output/oracle/oci/TableDefinition.java
47
- - src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java
48
- - src/test/java/org/embulk/input/filesplit/PartialFile.java
49
- - src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java
50
- - src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java
51
- - src/test/resources/oracle/data/test1/test1.csv
52
- - src/test/resources/oracle/data/test3/test3.csv
53
- - src/test/resources/oracle/data/test4/test4.csv
54
- - src/test/resources/oracle/data/test5/test5.csv
55
- - src/test/resources/oracle/yml/test-insert-direct-direct-method.yml
56
- - src/test/resources/oracle/yml/test-insert-direct-empty.yml
57
- - src/test/resources/oracle/yml/test-insert-direct-oci-method-large.yml
58
- - src/test/resources/oracle/yml/test-insert-direct-oci-method-multibyte.yml
59
- - src/test/resources/oracle/yml/test-insert-direct-oci-method-split.yml
60
- - src/test/resources/oracle/yml/test-insert-direct-oci-method.yml
61
- - src/test/resources/oracle/yml/test-insert-direct.yml
62
- - src/test/resources/oracle/yml/test-insert-empty.yml
63
- - src/test/resources/oracle/yml/test-insert.yml
64
- - src/test/resources/oracle/yml/test-lower-column-options.yml
65
- - src/test/resources/oracle/yml/test-lower-column.yml
66
- - src/test/resources/oracle/yml/test-lower-table.yml
67
- - src/test/resources/oracle/yml/test-merge-keys.yml
68
- - src/test/resources/oracle/yml/test-merge-rule.yml
69
- - src/test/resources/oracle/yml/test-merge.yml
70
- - src/test/resources/oracle/yml/test-replace-empty.yml
71
- - src/test/resources/oracle/yml/test-replace-long-name-multibyte.yml
72
- - src/test/resources/oracle/yml/test-replace-long-name.yml
73
- - src/test/resources/oracle/yml/test-replace-oci-method.yml
74
- - src/test/resources/oracle/yml/test-replace.yml
75
- - src/test/resources/oracle/yml/test-string-timestamp.yml
76
- - src/test/resources/oracle/yml/test-truncate-insert-oci-method.yml
77
- - src/test/resources/oracle/yml/test-truncate-insert.yml
78
- - src/test/resources/oracle/yml/test-url.yml
47
+ - src/test/java/org/embulk/output/oracle/BasicTest.java
48
+ - src/test/java/org/embulk/output/oracle/DummyFileSystem.java
49
+ - src/test/java/org/embulk/output/oracle/DummyFileSystemProvider.java
50
+ - src/test/java/org/embulk/output/oracle/DummyPath.java
51
+ - src/test/java/org/embulk/output/oracle/OracleTests.java
52
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/setup.sql
53
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test1.csv
54
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_expected.diff
55
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert.yml
56
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_create_expected.csv
57
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct.yml
58
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_direct.yml
59
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_large.yml
60
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_multibyte_table.yml
61
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci.yml
62
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci_large.yml
63
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci_multibyte_table.yml
64
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_empty_expected.csv
65
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_expected.csv
66
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_large_expected.csv
67
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_multibyte_table.yml
68
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_large.csv
69
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column.csv
70
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column.yml
71
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column_options.csv
72
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column_options.yml
73
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_table.yml
74
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge.csv
75
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge.yml
76
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_expected.csv
77
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys.csv
78
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys.yml
79
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys_expected.csv
80
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule.csv
81
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule.yml
82
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule_expected.csv
83
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace.yml
84
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_column_options.yml
85
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_longname.yml
86
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_longname_multibyte.yml
87
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_oci.yml
88
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp.csv
89
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp.yml
90
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp_expected.csv
91
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert.yml
92
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert_expected.csv
93
+ - src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert_oci.yml
79
94
  homepage: https://github.com/embulk/embulk-output-jdbc
80
95
  licenses:
81
96
  - Apache 2.0
@@ -1,185 +0,0 @@
1
- package org.embulk.input.filesplit;
2
-
3
- import java.io.BufferedInputStream;
4
- import java.io.ByteArrayInputStream;
5
- import java.io.ByteArrayOutputStream;
6
- import java.io.File;
7
- import java.io.FileInputStream;
8
- import java.io.IOException;
9
- import java.io.InputStream;
10
- import java.io.SequenceInputStream;
11
- import java.util.ArrayList;
12
- import java.util.List;
13
-
14
- import org.embulk.config.Config;
15
- import org.embulk.config.ConfigDefault;
16
- import org.embulk.config.ConfigDiff;
17
- import org.embulk.config.ConfigInject;
18
- import org.embulk.config.ConfigSource;
19
- import org.embulk.config.Task;
20
- import org.embulk.config.TaskReport;
21
- import org.embulk.config.TaskSource;
22
- import org.embulk.spi.BufferAllocator;
23
- import org.embulk.spi.Exec;
24
- import org.embulk.spi.FileInputPlugin;
25
- import org.embulk.spi.TransactionalFileInput;
26
- import org.embulk.spi.util.InputStreamFileInput;
27
-
28
- import com.google.common.base.Optional;
29
-
30
-
31
- public class LocalFileSplitInputPlugin
32
- implements FileInputPlugin
33
- {
34
- public interface PluginTask
35
- extends Task
36
- {
37
- @Config("path")
38
- public String getPath();
39
-
40
- @Config("tasks")
41
- @ConfigDefault("null")
42
- public Optional<Integer> getTasks();
43
-
44
- @Config("header_line")
45
- @ConfigDefault("false")
46
- public boolean getHeaderLine();
47
-
48
- public List<PartialFile> getFiles();
49
- public void setFiles(List<PartialFile> files);
50
-
51
- @ConfigInject
52
- public BufferAllocator getBufferAllocator();
53
- }
54
-
55
- @Override
56
- public ConfigDiff transaction(ConfigSource config, FileInputPlugin.Control control)
57
- {
58
- PluginTask task = config.loadConfig(PluginTask.class);
59
-
60
- int tasks;
61
- if (task.getTasks().isPresent()) {
62
- tasks = task.getTasks().get();
63
- if (tasks <= 0) {
64
- throw new IllegalArgumentException(String.format("'tasks' is %d but must be greater than 0", tasks));
65
- }
66
- } else {
67
- tasks = Runtime.getRuntime().availableProcessors() * 2;
68
- }
69
-
70
- long size = new File(task.getPath()).length();
71
- List<PartialFile> files = new ArrayList<PartialFile>();
72
- for (int i = 0; i < tasks; i++) {
73
- long start = size * i / tasks;
74
- long end = size * (i + 1) / tasks;
75
- if (start < end) {
76
- files.add(new PartialFile(task.getPath(), start, end));
77
- }
78
- }
79
-
80
- task.setFiles(files);
81
-
82
- return resume(task.dump(), task.getFiles().size(), control);
83
- }
84
-
85
- @Override
86
- public ConfigDiff resume(TaskSource taskSource,
87
- int taskCount,
88
- FileInputPlugin.Control control)
89
- {
90
- control.run(taskSource, taskCount);
91
-
92
- return Exec.newConfigDiff();
93
- }
94
-
95
- @Override
96
- public void cleanup(TaskSource taskSource, int taskCount, List<TaskReport> successCommitReports)
97
- { }
98
-
99
- @Override
100
- public TransactionalFileInput open(TaskSource taskSource, int taskIndex)
101
- {
102
- PluginTask task = taskSource.loadTask(PluginTask.class);
103
- return new LocalFileSplitInput(task, taskIndex);
104
- }
105
-
106
- public static class LocalFileSplitInput
107
- extends InputStreamFileInput
108
- implements TransactionalFileInput
109
- {
110
- public static class FileSplitProvider
111
- implements InputStreamFileInput.Provider
112
- {
113
- private final PartialFile file;
114
- private final boolean hasHeader;
115
- private boolean opened = false;
116
-
117
- public FileSplitProvider(PartialFile file, boolean hasHeader)
118
- {
119
- this.file = file;
120
- this.hasHeader = hasHeader;
121
- }
122
-
123
- @Override
124
- public InputStream openNext() throws IOException
125
- {
126
- if (opened) {
127
- return null;
128
- }
129
- opened = true;
130
-
131
- InputStream in = new PartialFileInputStream(new FileInputStream(file.getPath()), file.getStart(), file.getEnd());
132
- if (file.getStart() > 0 && hasHeader) {
133
- in = new SequenceInputStream(openHeader(file.getPath()), in);
134
- }
135
- return in;
136
- }
137
-
138
- @Override
139
- public void close() { }
140
-
141
- private InputStream openHeader(String path) throws IOException
142
- {
143
- ByteArrayOutputStream header = new ByteArrayOutputStream();
144
- try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(path))) {
145
- while (true) {
146
- int c = in.read();
147
- if (c < 0) {
148
- break;
149
- }
150
-
151
- header.write(c);
152
-
153
- if (c == '\n') {
154
- break;
155
- }
156
-
157
- if (c == '\r') {
158
- int c2 = in.read();
159
- if (c2 == '\n') {
160
- header.write(c2);
161
- }
162
- break;
163
- }
164
- }
165
- }
166
- header.close();
167
- return new ByteArrayInputStream(header.toByteArray());
168
- }
169
- }
170
-
171
- public LocalFileSplitInput(PluginTask task, int taskIndex)
172
- {
173
- super(task.getBufferAllocator(), new FileSplitProvider(task.getFiles().get(taskIndex), task.getHeaderLine()));
174
- }
175
-
176
- @Override
177
- public void abort() { }
178
-
179
- @Override
180
- public TaskReport commit()
181
- {
182
- return Exec.newTaskReport();
183
- }
184
- }
185
- }