embulk-filter-column 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +30 -6
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/filter/column/JsonColumn.java +3 -0
- data/src/test/java/org/embulk/filter/column/TestJsonVisitor.java +14 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0cad32bb6df05ff04fb0501b8b893812d999969e
         | 
| 4 | 
            +
              data.tar.gz: 7c0047d6f7dc5542195abd36a63e50aebdaa405a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1da990ff7ca9e14bbb7e385998309a979ef8376b3c25d8a117296ea121c82a91bf7cca8ee18439cf3b895b83a54901e37bcb6696ae618d4ee1c71755c1b92fc2
         | 
| 7 | 
            +
              data.tar.gz: dbb3eb97dc117998562791b05ff846078be14cc365f754312e575ad8d0a576fe6575c3c471c6d55cd7fa8884146191cf56faa7e3b0f6a519c8f14d855ab23158
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -114,9 +114,9 @@ C40P5H1WcBx-aWFDJCI8th6QPEI2DOUgupt_gB8UutE,7323 | |
| 114 114 | 
             
            For type: json column, you can specify [JSONPath](http://goessner.net/articles/JsonPath/) for column's name as:
         | 
| 115 115 |  | 
| 116 116 | 
             
            ```
         | 
| 117 | 
            -
            $.payload.key1
         | 
| 118 | 
            -
            $.payload.array[0]
         | 
| 119 | 
            -
            $.payload.array[*]
         | 
| 117 | 
            +
            - {name: $.payload.key1}
         | 
| 118 | 
            +
            - {name: "$.payload.array[0]"}
         | 
| 119 | 
            +
            - {name: "$.payload.array[*]"}
         | 
| 120 120 | 
             
            ```
         | 
| 121 121 |  | 
| 122 122 | 
             
            EXAMPLE:
         | 
| @@ -128,9 +128,33 @@ EXAMPLE: | |
| 128 128 | 
             
            NOTE:
         | 
| 129 129 |  | 
| 130 130 | 
             
            * JSONPath syntax is not fully supported
         | 
| 131 | 
            -
            *  | 
| 132 | 
            -
             | 
| 133 | 
            -
             | 
| 131 | 
            +
            * `type: timesatmp` for `add_columns` or `columns` is not available because Embulk's `type: json` cannot have timestamp column
         | 
| 132 | 
            +
             | 
| 133 | 
            +
            NOTE:
         | 
| 134 | 
            +
             | 
| 135 | 
            +
            To deeply visit json path such as `$.payload.foo.bar`, you have to write its upper paths together like:
         | 
| 136 | 
            +
             | 
| 137 | 
            +
            ```
         | 
| 138 | 
            +
            - (name: $.payload.foo}
         | 
| 139 | 
            +
            - {name: $.payload.foo.bar}
         | 
| 140 | 
            +
            ```
         | 
| 141 | 
            +
             | 
| 142 | 
            +
            NOTE:
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            `src` (to rename or copy columns) is only partially supported yet. The upper json path must be same like:
         | 
| 145 | 
            +
             | 
| 146 | 
            +
            ```
         | 
| 147 | 
            +
            - {name: $.payload.foo}
         | 
| 148 | 
            +
            - {name: $.payload.foo.dest, src: $.payload.foo.src}
         | 
| 149 | 
            +
            ```
         | 
| 150 | 
            +
             | 
| 151 | 
            +
            Below does not work yet.
         | 
| 152 | 
            +
             | 
| 153 | 
            +
            ```
         | 
| 154 | 
            +
            - {name: $.payload.foo}
         | 
| 155 | 
            +
            - {name: $.payload.bar}
         | 
| 156 | 
            +
            - {name: $.payload.foo.dest, src: $.payload.bar.src}
         | 
| 157 | 
            +
            ```
         | 
| 134 158 |  | 
| 135 159 | 
             
            ## ToDo
         | 
| 136 160 |  | 
    
        data/build.gradle
    CHANGED
    
    
| @@ -47,6 +47,9 @@ public class JsonColumn | |
| 47 47 | 
             
                    this.pathValue = ValueFactory.newString(path);
         | 
| 48 48 | 
             
                    this.parentPath = parentPath(path);
         | 
| 49 49 | 
             
                    this.baseName = baseName(path);
         | 
| 50 | 
            +
                    if (this.baseName.equals("[*]")) {
         | 
| 51 | 
            +
                        throw new ConfigException(String.format("%s wrongly ends with [*], perhaps you can remove the [*]", path));
         | 
| 52 | 
            +
                    }
         | 
| 50 53 | 
             
                    this.baseIndex = baseIndex(path);
         | 
| 51 54 | 
             
                    this.parentPathValue = ValueFactory.newString(parentPath);
         | 
| 52 55 | 
             
                    this.baseNameValue = ValueFactory.newString(baseName);
         | 
| @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            package org.embulk.filter.column;
         | 
| 2 2 |  | 
| 3 | 
            +
            import org.embulk.config.ConfigException;
         | 
| 3 4 | 
             
            import org.embulk.EmbulkTestRuntime;
         | 
| 4 5 | 
             
            import org.embulk.config.ConfigLoader;
         | 
| 5 6 | 
             
            import org.embulk.config.ConfigSource;
         | 
| @@ -55,6 +56,18 @@ public class TestJsonVisitor | |
| 55 56 | 
             
                    return new JsonVisitor(task, inputSchema, outputSchema);
         | 
| 56 57 | 
             
                }
         | 
| 57 58 |  | 
| 59 | 
            +
                @Test(expected = ConfigException.class)
         | 
| 60 | 
            +
                public void configException_Columns()
         | 
| 61 | 
            +
                {
         | 
| 62 | 
            +
                    PluginTask task = taskFromYamlString(
         | 
| 63 | 
            +
                            "type: column",
         | 
| 64 | 
            +
                            "columns:",
         | 
| 65 | 
            +
                            "  - {name: \"$.json1.b.b[*]\"}");
         | 
| 66 | 
            +
                    Schema inputSchema = Schema.builder().build();
         | 
| 67 | 
            +
                    // b[*] should be written as b
         | 
| 68 | 
            +
                    jsonVisitor(task, inputSchema);
         | 
| 69 | 
            +
                }
         | 
| 70 | 
            +
             | 
| 58 71 | 
             
                @Test
         | 
| 59 72 | 
             
                public void buildShouldVisitSet()
         | 
| 60 73 | 
             
                {
         | 
| @@ -311,7 +324,7 @@ public class TestJsonVisitor | |
| 311 324 | 
             
                            "type: column",
         | 
| 312 325 | 
             
                            "drop_columns:",
         | 
| 313 326 | 
             
                            "  - {name: \"$.json1.k1[0].k1\"}",
         | 
| 314 | 
            -
                            "  - {name: \"$.json1.k2[*]\"}");
         | 
| 327 | 
            +
                            "  - {name: \"$.json1.k2[*]\"}"); // ending with [*] is allowed for drop_columns, but not for others
         | 
| 315 328 | 
             
                    Schema inputSchema = Schema.builder()
         | 
| 316 329 | 
             
                            .add("json1", JSON)
         | 
| 317 330 | 
             
                            .add("json2", JSON)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: embulk-filter-column
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Naotoshi Seo
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-08-05 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -71,7 +71,7 @@ files: | |
| 71 71 | 
             
            - src/test/java/org/embulk/filter/column/TestColumnVisitorImpl.java
         | 
| 72 72 | 
             
            - src/test/java/org/embulk/filter/column/TestJsonColumn.java
         | 
| 73 73 | 
             
            - src/test/java/org/embulk/filter/column/TestJsonVisitor.java
         | 
| 74 | 
            -
            - classpath/embulk-filter-column-0.5. | 
| 74 | 
            +
            - classpath/embulk-filter-column-0.5.4.jar
         | 
| 75 75 | 
             
            homepage: https://github.com/sonots/embulk-filter-column
         | 
| 76 76 | 
             
            licenses:
         | 
| 77 77 | 
             
            - MIT
         |