embulk-filter-row 0.3.0 → 0.3.1
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 +7 -0
- data/README.md +34 -15
- data/build.gradle +1 -1
- data/classpath/embulk-filter-row-0.3.1.jar +0 -0
- data/src/main/java/org/embulk/filter/row/{BuildColumnVisitorImpl.java → BuilderColumnVisitorImpl.java} +2 -2
- data/src/main/java/org/embulk/filter/row/RowFilterPlugin.java +3 -3
- data/src/main/java/org/embulk/filter/row/where/Parser.java +53 -61
- data/src/main/java/org/embulk/filter/row/where/Yylex.java +115 -115
- data/src/main/java/org/embulk/filter/row/where/_lexer.l +5 -4
- data/src/main/java/org/embulk/filter/row/where/_parser.y +2 -10
- data/src/test/java/org/embulk/filter/row/where/TestYylex.java +19 -5
- metadata +4 -4
- data/classpath/embulk-filter-row-0.3.0.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: 4362a57be3339dd46cc6be453703748c71755617
|
4
|
+
data.tar.gz: 1c2b2044e7421793aac99c774010a6285e3ddc33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71237877bcfbfeca795113e388268187bbcdec03d98d7e196d24db2fd046c71515765771d0162f0a253579c29cafad354c7b9e86357b4fdb35aa011394a1fb22
|
7
|
+
data.tar.gz: 71a585f664ac93a3f82c726333b471e20e1377d7d21c7f685978a78324e22922ab24be634c01ca8466af2a3d8a74f017df00dc3f9b2c3085a767cd772bac5309
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -80,8 +80,6 @@ filters:
|
|
80
80
|
- {column: d, operator: "IS NOT NULL"}
|
81
81
|
```
|
82
82
|
|
83
|
-
This is equivalent with `((A OR B) AND (C OR D))`.
|
84
|
-
|
85
83
|
## Example (WHERE) (Experimental)
|
86
84
|
|
87
85
|
Versions >= 0.3.0 suppors SQL-like syntax like
|
@@ -107,17 +105,18 @@ See [SQL-like Syntax](#sql-like-syntax) for more details
|
|
107
105
|
|
108
106
|
Versions >= 0.3.0 suppors SQL-like syntax as:
|
109
107
|
|
110
|
-
```
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
108
|
+
```sql
|
109
|
+
where: |-
|
110
|
+
(
|
111
|
+
string START_WITH 'str' AND
|
112
|
+
number > 1.0
|
113
|
+
|
114
|
+
)
|
115
|
+
OR
|
116
|
+
(
|
117
|
+
time = TIMESTAMP '2016-01-01 +0900' AND
|
118
|
+
"true" = true
|
119
|
+
)
|
121
120
|
```
|
122
121
|
|
123
122
|
## Literals
|
@@ -149,7 +148,7 @@ String is a timestamp string which matches with one of following format:
|
|
149
148
|
* `%Y-%m-%d %z`
|
150
149
|
* `%Y-%m-%d`
|
151
150
|
|
152
|
-
The
|
151
|
+
The time zone for formats without `%z` is UTC, and the time resolution is micro second (caused by limitation of Embulk TimestampParser).
|
153
152
|
|
154
153
|
### Json Literal
|
155
154
|
|
@@ -157,7 +156,7 @@ Not supported yet
|
|
157
156
|
|
158
157
|
### Identifier Literal
|
159
158
|
|
160
|
-
Characters matching with a regular expression `[a-zA-
|
159
|
+
Characters matching with a regular expression `[a-zA-Z_][a-zA-z0-9_]*` such as `foobar`, and characters surrounded by `"` such as `"foo\"bar"` are considred as an identifier literal, that is, embulk's column name.
|
161
160
|
|
162
161
|
## Operators
|
163
162
|
|
@@ -236,3 +235,23 @@ Release gem:
|
|
236
235
|
```
|
237
236
|
$ ./gradlew gemPush
|
238
237
|
```
|
238
|
+
|
239
|
+
## Development of SQL-like Syntax
|
240
|
+
|
241
|
+
Read the article [Supported SQL-like Syntax with embulk-filter-row using BYACC/J and JFlex](http://blog.livedoor.jp/sonots/archives/48172830.html).
|
242
|
+
|
243
|
+
To download BYACC/J and JFlex and run them, you can use:
|
244
|
+
|
245
|
+
```
|
246
|
+
$ script/byaccj.sh
|
247
|
+
```
|
248
|
+
|
249
|
+
or
|
250
|
+
|
251
|
+
```
|
252
|
+
$ ./gradlew byaccj # this runs script/byaccj.sh internally
|
253
|
+
```
|
254
|
+
|
255
|
+
This generates `src/main/java/org/embulk/filter/row/where/{Parser,ParserVal,Yylex}.java`.
|
256
|
+
|
257
|
+
The `byaccj` task of gradle is ran before `compileJava` task (which means to be ran before `classpath` or `test` task also) automatically.
|
data/build.gradle
CHANGED
Binary file
|
@@ -11,7 +11,7 @@ import org.embulk.spi.Schema;
|
|
11
11
|
|
12
12
|
import org.slf4j.Logger;
|
13
13
|
|
14
|
-
public class
|
14
|
+
public class BuilderColumnVisitorImpl
|
15
15
|
implements ColumnVisitor
|
16
16
|
{
|
17
17
|
private static final Logger logger = Exec.getLogger(RowFilterPlugin.class);
|
@@ -21,7 +21,7 @@ public class BuildColumnVisitorImpl
|
|
21
21
|
private final PageReader pageReader;
|
22
22
|
private final PageBuilder pageBuilder;
|
23
23
|
|
24
|
-
|
24
|
+
BuilderColumnVisitorImpl(PluginTask task, Schema inputSchema, Schema outputSchema, PageReader pageReader, PageBuilder pageBuilder)
|
25
25
|
{
|
26
26
|
this.task = task;
|
27
27
|
this.inputSchema = inputSchema;
|
@@ -105,8 +105,8 @@ public class RowFilterPlugin implements FilterPlugin
|
|
105
105
|
guradVisitor = new GuardColumnVisitorAndImpl(task, inputSchema, outputSchema, pageReader);
|
106
106
|
}
|
107
107
|
|
108
|
-
final
|
109
|
-
|
108
|
+
final BuilderColumnVisitorImpl builderVisitor;
|
109
|
+
builderVisitor = new BuilderColumnVisitorImpl(task, inputSchema, outputSchema, pageReader, pageBuilder);
|
110
110
|
|
111
111
|
return new PageOutput() {
|
112
112
|
@Override
|
@@ -129,7 +129,7 @@ public class RowFilterPlugin implements FilterPlugin
|
|
129
129
|
while (pageReader.nextRecord()) {
|
130
130
|
if (guradVisitor.visitColumns(inputSchema)) {
|
131
131
|
// output.add(page); did not work, double release() error occurred. We need to copy from reader to builder...
|
132
|
-
outputSchema.visitColumns(
|
132
|
+
outputSchema.visitColumns(builderVisitor);
|
133
133
|
pageBuilder.addRecord();
|
134
134
|
}
|
135
135
|
}
|
@@ -18,9 +18,10 @@ package org.embulk.filter.row.where;
|
|
18
18
|
|
19
19
|
|
20
20
|
//#line 2 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
21
|
+
import org.embulk.config.ConfigException;
|
21
22
|
import org.embulk.spi.Column;
|
22
23
|
import org.embulk.spi.Schema;
|
23
|
-
//#line
|
24
|
+
//#line 21 "Parser.java"
|
24
25
|
|
25
26
|
|
26
27
|
|
@@ -373,7 +374,7 @@ final static String yyrule[] = {
|
|
373
374
|
"exp : '(' exp ')'",
|
374
375
|
};
|
375
376
|
|
376
|
-
//#line
|
377
|
+
//#line 92 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
377
378
|
|
378
379
|
protected Schema schema;
|
379
380
|
protected Yylex lexer;
|
@@ -410,18 +411,9 @@ private int yylex () {
|
|
410
411
|
|
411
412
|
void yyerror(String s)
|
412
413
|
{
|
413
|
-
throw new
|
414
|
+
throw new ConfigException("yyerror: " + s);
|
414
415
|
}
|
415
|
-
|
416
|
-
/*public static void main(String args[])
|
417
|
-
{
|
418
|
-
Parser yyparser = new Parser();
|
419
|
-
ParserExp exp = yyparser.parse("boolean = true");
|
420
|
-
HashMap<String, Object> variables = new HashMap<>();
|
421
|
-
variables.put("boolean", Boolean.TRUE);
|
422
|
-
System.out.println("ans: " + exp.eval(variables));
|
423
|
-
}*/
|
424
|
-
//#line 352 "Parser.java"
|
416
|
+
//#line 344 "Parser.java"
|
425
417
|
//###############################################################
|
426
418
|
// method: yylexdebug : check lexer state
|
427
419
|
//###############################################################
|
@@ -576,194 +568,194 @@ boolean doaction;
|
|
576
568
|
{
|
577
569
|
//########## USER-SUPPLIED ACTIONS ##########
|
578
570
|
case 2:
|
579
|
-
//#line
|
571
|
+
//#line 40 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
580
572
|
{ root = val_peek(0); }
|
581
573
|
break;
|
582
574
|
case 3:
|
583
|
-
//#line
|
575
|
+
//#line 43 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
584
576
|
{ yyval = new ParserVal(new TimestampLiteral(val_peek(0))); }
|
585
577
|
break;
|
586
578
|
case 4:
|
587
|
-
//#line
|
579
|
+
//#line 44 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
588
580
|
{ yyval = new ParserVal(new TimestampLiteral(val_peek(0))); }
|
589
581
|
break;
|
590
582
|
case 5:
|
591
|
-
//#line
|
583
|
+
//#line 46 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
592
584
|
{ yyval = new ParserVal(new BooleanOpExp(val_peek(2), val_peek(0), EQ)); }
|
593
585
|
break;
|
594
586
|
case 6:
|
595
|
-
//#line
|
587
|
+
//#line 47 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
596
588
|
{ yyval = new ParserVal(new BooleanOpExp(val_peek(2), val_peek(0), NEQ)); }
|
597
589
|
break;
|
598
590
|
case 7:
|
599
|
-
//#line
|
591
|
+
//#line 48 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
600
592
|
{ yyval = new ParserVal(new BooleanOpExp(val_peek(2), val_peek(0), EQ)); }
|
601
593
|
break;
|
602
594
|
case 8:
|
603
|
-
//#line
|
595
|
+
//#line 49 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
604
596
|
{ yyval = new ParserVal(new BooleanOpExp(val_peek(2), val_peek(0), NEQ)); }
|
605
597
|
break;
|
606
598
|
case 9:
|
607
|
-
//#line
|
599
|
+
//#line 50 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
608
600
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), EQ)); }
|
609
601
|
break;
|
610
602
|
case 10:
|
611
|
-
//#line
|
603
|
+
//#line 51 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
612
604
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), NEQ)); }
|
613
605
|
break;
|
614
606
|
case 11:
|
615
|
-
//#line
|
607
|
+
//#line 52 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
616
608
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), GT)); }
|
617
609
|
break;
|
618
610
|
case 12:
|
619
|
-
//#line
|
611
|
+
//#line 53 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
620
612
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), GE)); }
|
621
613
|
break;
|
622
614
|
case 13:
|
623
|
-
//#line
|
615
|
+
//#line 54 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
624
616
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), LT)); }
|
625
617
|
break;
|
626
618
|
case 14:
|
627
|
-
//#line
|
619
|
+
//#line 55 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
628
620
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), LE)); }
|
629
621
|
break;
|
630
622
|
case 15:
|
631
|
-
//#line
|
623
|
+
//#line 56 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
632
624
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), EQ)); }
|
633
625
|
break;
|
634
626
|
case 16:
|
635
|
-
//#line
|
627
|
+
//#line 57 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
636
628
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), NEQ)); }
|
637
629
|
break;
|
638
630
|
case 17:
|
639
|
-
//#line
|
631
|
+
//#line 58 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
640
632
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), GT)); }
|
641
633
|
break;
|
642
634
|
case 18:
|
643
|
-
//#line
|
635
|
+
//#line 59 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
644
636
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), GE)); }
|
645
637
|
break;
|
646
638
|
case 19:
|
647
|
-
//#line
|
639
|
+
//#line 60 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
648
640
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), LT)); }
|
649
641
|
break;
|
650
642
|
case 20:
|
651
|
-
//#line
|
643
|
+
//#line 61 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
652
644
|
{ yyval = new ParserVal(new NumberOpExp(val_peek(2), val_peek(0), LE)); }
|
653
645
|
break;
|
654
646
|
case 21:
|
655
|
-
//#line
|
647
|
+
//#line 62 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
656
648
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), EQ)); }
|
657
649
|
break;
|
658
650
|
case 22:
|
659
|
-
//#line
|
651
|
+
//#line 63 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
660
652
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), NEQ)); }
|
661
653
|
break;
|
662
654
|
case 23:
|
663
|
-
//#line
|
655
|
+
//#line 64 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
664
656
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), START_WITH)); }
|
665
657
|
break;
|
666
658
|
case 24:
|
667
|
-
//#line
|
659
|
+
//#line 65 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
668
660
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), END_WITH)); }
|
669
661
|
break;
|
670
662
|
case 25:
|
671
|
-
//#line
|
663
|
+
//#line 66 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
672
664
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), INCLUDE)); }
|
673
665
|
break;
|
674
666
|
case 26:
|
675
|
-
//#line
|
667
|
+
//#line 67 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
676
668
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), EQ)); }
|
677
669
|
break;
|
678
670
|
case 27:
|
679
|
-
//#line
|
671
|
+
//#line 68 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
680
672
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), NEQ)); }
|
681
673
|
break;
|
682
674
|
case 28:
|
683
|
-
//#line
|
675
|
+
//#line 69 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
684
676
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), START_WITH)); }
|
685
677
|
break;
|
686
678
|
case 29:
|
687
|
-
//#line
|
679
|
+
//#line 70 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
688
680
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), END_WITH)); }
|
689
681
|
break;
|
690
682
|
case 30:
|
691
|
-
//#line
|
683
|
+
//#line 71 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
692
684
|
{ yyval = new ParserVal(new StringOpExp(val_peek(2), val_peek(0), INCLUDE)); }
|
693
685
|
break;
|
694
686
|
case 31:
|
695
|
-
//#line
|
687
|
+
//#line 72 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
696
688
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), EQ)); }
|
697
689
|
break;
|
698
690
|
case 32:
|
699
|
-
//#line
|
691
|
+
//#line 73 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
700
692
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), NEQ)); }
|
701
693
|
break;
|
702
694
|
case 33:
|
703
|
-
//#line
|
695
|
+
//#line 74 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
704
696
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), GT)); }
|
705
697
|
break;
|
706
698
|
case 34:
|
707
|
-
//#line
|
699
|
+
//#line 75 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
708
700
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), GE)); }
|
709
701
|
break;
|
710
702
|
case 35:
|
711
|
-
//#line
|
703
|
+
//#line 76 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
712
704
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), LT)); }
|
713
705
|
break;
|
714
706
|
case 36:
|
715
|
-
//#line
|
707
|
+
//#line 77 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
716
708
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), LE)); }
|
717
709
|
break;
|
718
710
|
case 37:
|
719
|
-
//#line
|
711
|
+
//#line 78 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
720
712
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), EQ)); }
|
721
713
|
break;
|
722
714
|
case 38:
|
723
|
-
//#line
|
715
|
+
//#line 79 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
724
716
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), NEQ)); }
|
725
717
|
break;
|
726
718
|
case 39:
|
727
|
-
//#line
|
719
|
+
//#line 80 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
728
720
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), GT)); }
|
729
721
|
break;
|
730
722
|
case 40:
|
731
|
-
//#line
|
723
|
+
//#line 81 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
732
724
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), GE)); }
|
733
725
|
break;
|
734
726
|
case 41:
|
735
|
-
//#line
|
727
|
+
//#line 82 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
736
728
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), LT)); }
|
737
729
|
break;
|
738
730
|
case 42:
|
739
|
-
//#line
|
731
|
+
//#line 83 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
740
732
|
{ yyval = new ParserVal(new TimestampOpExp(val_peek(2), val_peek(0), LE)); }
|
741
733
|
break;
|
742
734
|
case 43:
|
743
|
-
//#line
|
735
|
+
//#line 84 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
744
736
|
{ yyval = new ParserVal(new NullOpExp(val_peek(2), EQ)); }
|
745
737
|
break;
|
746
738
|
case 44:
|
747
|
-
//#line
|
739
|
+
//#line 85 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
748
740
|
{ yyval = new ParserVal(new NullOpExp(val_peek(3), NEQ)); }
|
749
741
|
break;
|
750
742
|
case 45:
|
751
|
-
//#line
|
743
|
+
//#line 86 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
752
744
|
{ yyval = new ParserVal(new LogicalOpExp(val_peek(2), val_peek(0), OR)); }
|
753
745
|
break;
|
754
746
|
case 46:
|
755
|
-
//#line
|
747
|
+
//#line 87 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
756
748
|
{ yyval = new ParserVal(new LogicalOpExp(val_peek(2), val_peek(0), AND)); }
|
757
749
|
break;
|
758
750
|
case 47:
|
759
|
-
//#line
|
751
|
+
//#line 88 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
760
752
|
{ yyval = new ParserVal(new NegateOpExp(val_peek(0))); }
|
761
753
|
break;
|
762
754
|
case 48:
|
763
|
-
//#line
|
755
|
+
//#line 89 "src/main/java/org/embulk/filter/row/where/_parser.y"
|
764
756
|
{ yyval = val_peek(1); }
|
765
757
|
break;
|
766
|
-
//#line
|
758
|
+
//#line 681 "Parser.java"
|
767
759
|
//########## END OF USER-SUPPLIED ACTIONS ##########
|
768
760
|
}//switch
|
769
761
|
//#### Now let's reduce... ####
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
package org.embulk.filter.row.where;
|
4
4
|
|
5
|
+
import org.embulk.config.ConfigException;
|
5
6
|
import org.embulk.spi.Schema;
|
6
7
|
|
7
8
|
/**
|
@@ -36,14 +37,14 @@ class Yylex {
|
|
36
37
|
* Translates characters to character classes
|
37
38
|
*/
|
38
39
|
private static final String ZZ_CMAP_PACKED =
|
39
|
-
"\11\0\1\
|
40
|
-
"\
|
41
|
-
"\
|
42
|
-
"\1\
|
43
|
-
"\1\
|
44
|
-
"\1\
|
45
|
-
"\1\
|
46
|
-
"\1\
|
40
|
+
"\11\0\1\52\1\12\1\53\1\53\1\11\22\0\1\52\1\24\1\4"+
|
41
|
+
"\4\0\1\10\1\13\1\13\3\0\1\1\1\3\1\0\12\2\2\0"+
|
42
|
+
"\1\22\1\21\1\23\2\0\1\14\1\5\1\34\1\16\1\33\1\51"+
|
43
|
+
"\1\5\1\32\1\31\2\5\1\35\1\37\1\15\1\17\1\40\1\5"+
|
44
|
+
"\1\20\1\25\1\26\1\36\1\5\1\30\3\5\1\6\1\7\2\6"+
|
45
|
+
"\1\27\1\6\1\46\1\54\2\5\1\44\1\45\5\5\1\47\1\5"+
|
46
|
+
"\1\55\3\5\1\42\1\50\1\41\1\43\5\5\12\0\1\53\u1fa2\0"+
|
47
|
+
"\1\53\1\53\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0";
|
47
48
|
|
48
49
|
/**
|
49
50
|
* Translates characters to character classes
|
@@ -90,19 +91,19 @@ class Yylex {
|
|
90
91
|
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
91
92
|
|
92
93
|
private static final String ZZ_ROWMAP_PACKED_0 =
|
93
|
-
"\0\0\0\
|
94
|
-
"\0\
|
95
|
-
"\0\
|
96
|
-
"\0\
|
97
|
-
"\0\
|
98
|
-
"\0\
|
99
|
-
"\0\
|
100
|
-
"\0\
|
101
|
-
"\0\
|
102
|
-
"\0\
|
103
|
-
"\0\
|
104
|
-
"\0\
|
105
|
-
"\0\
|
94
|
+
"\0\0\0\56\0\134\0\212\0\270\0\346\0\212\0\u0114"+
|
95
|
+
"\0\212\0\u0142\0\212\0\212\0\u0170\0\u019e\0\u01cc\0\212"+
|
96
|
+
"\0\u01fa\0\u0228\0\u0256\0\u0284\0\u02b2\0\u02e0\0\u030e\0\u033c"+
|
97
|
+
"\0\u036a\0\u0398\0\u03c6\0\u03f4\0\u0422\0\212\0\u0450\0\212"+
|
98
|
+
"\0\u047e\0\u04ac\0\u04da\0\u0508\0\u0536\0\u0114\0\212\0\212"+
|
99
|
+
"\0\212\0\u0564\0\u0592\0\u05c0\0\u05ee\0\u0114\0\u061c\0\u064a"+
|
100
|
+
"\0\u0678\0\u06a6\0\212\0\212\0\212\0\212\0\212\0\212"+
|
101
|
+
"\0\212\0\212\0\212\0\u04ac\0\u0114\0\u0114\0\u06d4\0\u0702"+
|
102
|
+
"\0\u0730\0\u075e\0\u078c\0\u07ba\0\u07e8\0\u0816\0\u0844\0\u0114"+
|
103
|
+
"\0\u0872\0\u0114\0\u08a0\0\u08ce\0\u08fc\0\u092a\0\u0958\0\u0986"+
|
104
|
+
"\0\u09b4\0\u09e2\0\u0a10\0\u0114\0\u0a3e\0\u0a6c\0\u0a9a\0\u0ac8"+
|
105
|
+
"\0\u0af6\0\u0b24\0\u0114\0\u0b52\0\u0b80\0\u0bae\0\u0114\0\u0bdc"+
|
106
|
+
"\0\u0114\0\u0114";
|
106
107
|
|
107
108
|
private static int [] zzUnpackRowMap() {
|
108
109
|
int [] result = new int[98];
|
@@ -128,99 +129,98 @@ class Yylex {
|
|
128
129
|
private static final int [] ZZ_TRANS = zzUnpackTrans();
|
129
130
|
|
130
131
|
private static final String ZZ_TRANS_PACKED_0 =
|
131
|
-
"\1\4\1\5\1\6\1\4\1\7\1\10\2\4\1\
|
132
|
-
"\1\
|
133
|
-
"\1\
|
134
|
-
"\1\10\1\
|
135
|
-
"\
|
136
|
-
"\
|
137
|
-
"\
|
138
|
-
"\
|
139
|
-
"\
|
140
|
-
"\
|
141
|
-
"\3\10\
|
142
|
-
"\
|
143
|
-
"\
|
144
|
-
"\
|
145
|
-
"\
|
146
|
-
"\
|
147
|
-
"\4\0\4\10\1\
|
148
|
-
"\2\10\
|
149
|
-
"\
|
150
|
-
"\
|
151
|
-
"\
|
152
|
-
"\
|
153
|
-
"\
|
154
|
-
"\
|
155
|
-
"\
|
156
|
-
"\
|
157
|
-
"\1\
|
158
|
-
"\1\
|
159
|
-
"\1\
|
160
|
-
"\1\
|
161
|
-
"\
|
162
|
-
"\4\0\
|
163
|
-
"\
|
164
|
-
"\1\
|
165
|
-
"\
|
166
|
-
"\
|
167
|
-
"\
|
168
|
-
"\
|
169
|
-
"\
|
170
|
-
"\
|
171
|
-
"\
|
172
|
-
"\2\
|
173
|
-
"\
|
174
|
-
"\
|
175
|
-
"\
|
176
|
-
"\
|
177
|
-
"\
|
178
|
-
"\
|
179
|
-
"\
|
180
|
-
"\
|
181
|
-
"\
|
182
|
-
"\2\0\
|
183
|
-
"\
|
184
|
-
"\
|
185
|
-
"\2\0\
|
186
|
-
"\
|
187
|
-
"\
|
188
|
-
"\2\0\
|
189
|
-
"\
|
190
|
-
"\
|
191
|
-
"\
|
192
|
-
"\
|
193
|
-
"\
|
194
|
-
"\
|
195
|
-
"\1\
|
196
|
-
"\
|
197
|
-
"\
|
198
|
-
"\1\
|
199
|
-
"\
|
200
|
-
"\
|
201
|
-
"\1\
|
202
|
-
"\
|
203
|
-
"\
|
204
|
-
"\1\
|
205
|
-
"\
|
206
|
-
"\
|
207
|
-
"\
|
208
|
-
"\
|
209
|
-
"\
|
210
|
-
"\
|
211
|
-
"\
|
212
|
-
"\
|
213
|
-
"\
|
214
|
-
"\
|
215
|
-
"\
|
216
|
-
"\
|
217
|
-
"\
|
218
|
-
"\
|
219
|
-
"\
|
220
|
-
"\17\10\2\0\2\10";
|
132
|
+
"\1\4\1\5\1\6\1\4\1\7\1\10\2\4\1\11"+
|
133
|
+
"\1\12\1\13\1\14\1\15\1\16\1\10\1\17\1\10"+
|
134
|
+
"\1\20\1\21\1\22\1\23\1\24\1\25\2\10\1\26"+
|
135
|
+
"\1\10\1\27\5\10\1\30\3\10\1\31\3\10\1\32"+
|
136
|
+
"\1\33\1\4\2\10\7\34\1\35\1\36\2\4\43\34"+
|
137
|
+
"\4\37\1\40\2\37\1\41\1\37\2\4\43\37\60\0"+
|
138
|
+
"\1\6\55\0\1\6\1\42\54\0\1\10\2\0\3\10"+
|
139
|
+
"\4\0\5\10\4\0\25\10\2\0\2\10\12\0\1\13"+
|
140
|
+
"\45\0\1\10\2\0\3\10\4\0\1\10\1\43\3\10"+
|
141
|
+
"\4\0\25\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
142
|
+
"\4\0\3\10\1\44\1\10\4\0\11\10\1\45\13\10"+
|
143
|
+
"\2\0\2\10\2\0\1\10\2\0\3\10\4\0\4\10"+
|
144
|
+
"\1\46\4\0\25\10\2\0\2\10\21\0\1\47\1\0"+
|
145
|
+
"\1\50\53\0\1\51\55\0\1\50\36\0\1\10\2\0"+
|
146
|
+
"\3\10\4\0\5\10\4\0\1\10\1\52\23\10\2\0"+
|
147
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\4\10\1\53"+
|
148
|
+
"\4\0\4\10\1\54\20\10\2\0\2\10\2\0\1\10"+
|
149
|
+
"\2\0\3\10\4\0\1\10\1\55\3\10\4\0\1\56"+
|
150
|
+
"\24\10\2\0\2\10\2\0\1\10\2\0\3\10\4\0"+
|
151
|
+
"\1\10\1\57\3\10\4\0\25\10\2\0\2\10\2\0"+
|
152
|
+
"\1\10\2\0\3\10\4\0\5\10\4\0\15\10\1\60"+
|
153
|
+
"\7\10\2\0\2\10\2\0\1\10\2\0\3\10\4\0"+
|
154
|
+
"\5\10\4\0\21\10\1\61\3\10\2\0\2\10\2\0"+
|
155
|
+
"\1\10\2\0\3\10\4\0\1\62\4\10\4\0\25\10"+
|
156
|
+
"\2\0\2\10\52\0\1\33\3\0\7\34\4\0\43\34"+
|
157
|
+
"\4\63\1\64\2\63\1\65\1\66\2\0\26\63\1\67"+
|
158
|
+
"\1\70\2\63\1\71\5\63\1\0\1\72\1\73\4\37"+
|
159
|
+
"\1\0\2\37\1\0\1\37\2\0\43\37\4\63\1\64"+
|
160
|
+
"\2\63\1\65\1\66\2\0\40\63\1\0\2\63\2\0"+
|
161
|
+
"\1\74\55\0\1\10\2\0\3\10\4\0\2\10\1\75"+
|
162
|
+
"\2\10\4\0\25\10\2\0\2\10\2\0\1\10\2\0"+
|
163
|
+
"\3\10\4\0\5\10\4\0\1\10\1\76\23\10\2\0"+
|
164
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\5\10\4\0"+
|
165
|
+
"\10\10\1\77\14\10\2\0\2\10\2\0\1\10\2\0"+
|
166
|
+
"\3\10\4\0\1\100\4\10\4\0\25\10\2\0\2\10"+
|
167
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\11\10"+
|
168
|
+
"\1\101\13\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
169
|
+
"\4\0\5\10\4\0\12\10\1\102\12\10\2\0\2\10"+
|
170
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\7\10"+
|
171
|
+
"\1\103\15\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
172
|
+
"\4\0\2\10\1\104\2\10\4\0\25\10\2\0\2\10"+
|
173
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\16\10"+
|
174
|
+
"\1\105\6\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
175
|
+
"\4\0\5\10\4\0\22\10\1\106\2\10\2\0\2\10"+
|
176
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\10\10"+
|
177
|
+
"\1\107\14\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
178
|
+
"\4\0\5\10\4\0\10\10\1\110\14\10\2\0\2\10"+
|
179
|
+
"\2\0\1\10\2\0\3\10\4\0\4\10\1\111\4\0"+
|
180
|
+
"\25\10\2\0\2\10\2\0\1\10\2\0\3\10\4\0"+
|
181
|
+
"\5\10\4\0\6\10\1\112\16\10\2\0\2\10\2\0"+
|
182
|
+
"\1\10\2\0\3\10\4\0\5\10\4\0\6\10\1\113"+
|
183
|
+
"\16\10\2\0\2\10\2\0\1\10\2\0\3\10\4\0"+
|
184
|
+
"\5\10\4\0\10\10\1\114\14\10\2\0\2\10\2\0"+
|
185
|
+
"\1\10\2\0\3\10\4\0\5\10\4\0\2\10\1\115"+
|
186
|
+
"\22\10\2\0\2\10\2\0\1\10\2\0\3\10\4\0"+
|
187
|
+
"\5\10\4\0\17\10\1\112\5\10\2\0\2\10\2\0"+
|
188
|
+
"\1\10\2\0\3\10\4\0\5\10\4\0\23\10\1\116"+
|
189
|
+
"\1\10\2\0\2\10\2\0\1\10\2\0\3\10\4\0"+
|
190
|
+
"\5\10\4\0\1\117\24\10\2\0\2\10\2\0\1\10"+
|
191
|
+
"\2\0\3\10\4\0\5\10\4\0\1\10\1\120\23\10"+
|
192
|
+
"\2\0\2\10\2\0\1\10\2\0\3\10\4\0\5\10"+
|
193
|
+
"\4\0\1\121\24\10\2\0\2\10\2\0\1\10\2\0"+
|
194
|
+
"\3\10\4\0\5\10\4\0\11\10\1\122\13\10\2\0"+
|
195
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\5\10\4\0"+
|
196
|
+
"\3\10\1\123\21\10\2\0\2\10\2\0\1\10\2\0"+
|
197
|
+
"\3\10\4\0\5\10\4\0\17\10\1\124\5\10\2\0"+
|
198
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\5\10\4\0"+
|
199
|
+
"\6\10\1\124\16\10\2\0\2\10\2\0\1\10\2\0"+
|
200
|
+
"\3\10\4\0\5\10\4\0\2\10\1\125\22\10\2\0"+
|
201
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\5\10\4\0"+
|
202
|
+
"\1\10\1\126\23\10\2\0\2\10\2\0\1\10\2\0"+
|
203
|
+
"\3\10\4\0\2\10\1\127\2\10\4\0\25\10\2\0"+
|
204
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\5\10\4\0"+
|
205
|
+
"\4\10\1\130\20\10\2\0\2\10\2\0\1\10\2\0"+
|
206
|
+
"\3\10\4\0\5\10\4\0\3\10\1\131\21\10\2\0"+
|
207
|
+
"\2\10\2\0\1\10\2\0\3\10\4\0\1\132\4\10"+
|
208
|
+
"\4\0\25\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
209
|
+
"\4\0\5\10\4\0\6\10\1\133\16\10\2\0\2\10"+
|
210
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\1\10"+
|
211
|
+
"\1\134\23\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
212
|
+
"\4\0\5\10\4\0\4\10\1\135\20\10\2\0\2\10"+
|
213
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\12\10"+
|
214
|
+
"\1\136\12\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
215
|
+
"\4\0\5\10\4\0\5\10\1\137\17\10\2\0\2\10"+
|
216
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\1\10"+
|
217
|
+
"\1\140\23\10\2\0\2\10\2\0\1\10\2\0\3\10"+
|
218
|
+
"\4\0\5\10\4\0\13\10\1\141\11\10\2\0\2\10"+
|
219
|
+
"\2\0\1\10\2\0\3\10\4\0\5\10\4\0\5\10"+
|
220
|
+
"\1\142\17\10\2\0\2\10";
|
221
221
|
|
222
222
|
private static int [] zzUnpackTrans() {
|
223
|
-
int [] result = new int[
|
223
|
+
int [] result = new int[3082];
|
224
224
|
int offset = 0;
|
225
225
|
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
226
226
|
return result;
|
@@ -371,7 +371,7 @@ class Yylex {
|
|
371
371
|
char [] map = new char[0x110000];
|
372
372
|
int i = 0; /* index in packed string */
|
373
373
|
int j = 0; /* index in unpacked array */
|
374
|
-
while (i <
|
374
|
+
while (i < 178) {
|
375
375
|
int count = packed.charAt(i++);
|
376
376
|
char value = packed.charAt(i++);
|
377
377
|
do map[j++] = value; while (--count > 0);
|
@@ -679,7 +679,7 @@ class Yylex {
|
|
679
679
|
else {
|
680
680
|
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
|
681
681
|
case 1:
|
682
|
-
{ throw new
|
682
|
+
{ throw new ConfigException("yylex: Unexpected character '"+yytext()+"'");
|
683
683
|
}
|
684
684
|
case 37: break;
|
685
685
|
case 2:
|
@@ -751,7 +751,7 @@ class Yylex {
|
|
751
751
|
}
|
752
752
|
case 54: break;
|
753
753
|
case 19:
|
754
|
-
{ throw new
|
754
|
+
{ throw new ConfigException("yylex: Illegal escape sequence \""+yytext()+"\"");
|
755
755
|
}
|
756
756
|
case 55: break;
|
757
757
|
case 20:
|
@@ -1,5 +1,6 @@
|
|
1
1
|
package org.embulk.filter.row.where;
|
2
2
|
|
3
|
+
import org.embulk.config.ConfigException;
|
3
4
|
import org.embulk.spi.Schema;
|
4
5
|
%%
|
5
6
|
|
@@ -23,7 +24,7 @@ import org.embulk.spi.Schema;
|
|
23
24
|
|
24
25
|
Number = -?[0-9]+(\.[0-9]+)?
|
25
26
|
QuotedIdentifierChar = [^\r\n\"\\]
|
26
|
-
NonQuotedIdentifier = [a-zA-
|
27
|
+
NonQuotedIdentifier = [a-zA-Z_][a-zA-z0-9_]*
|
27
28
|
StringChar = [^\r\n\'\\]+
|
28
29
|
Newline = \n|\r|\r\n
|
29
30
|
|
@@ -82,7 +83,7 @@ Newline = \n|\r|\r\n
|
|
82
83
|
"\\\\" { string.append( '\\' ); }
|
83
84
|
|
84
85
|
/* error cases */
|
85
|
-
\\. { throw new
|
86
|
+
\\. { throw new ConfigException("yylex: Illegal escape sequence \""+yytext()+"\""); }
|
86
87
|
}
|
87
88
|
|
88
89
|
<STRING> {
|
@@ -101,8 +102,8 @@ Newline = \n|\r|\r\n
|
|
101
102
|
"\\\\" { string.append( '\\' ); }
|
102
103
|
|
103
104
|
/* error cases */
|
104
|
-
\\. { throw new
|
105
|
+
\\. { throw new ConfigException("yylex: Illegal escape sequence \""+yytext()+"\""); }
|
105
106
|
}
|
106
107
|
|
107
108
|
/* error fallback */
|
108
|
-
[^] { throw new
|
109
|
+
[^] { throw new ConfigException("yylex: Unexpected character '"+yytext()+"'"); }
|
@@ -1,4 +1,5 @@
|
|
1
1
|
%{
|
2
|
+
import org.embulk.config.ConfigException;
|
2
3
|
import org.embulk.spi.Column;
|
3
4
|
import org.embulk.spi.Schema;
|
4
5
|
%}
|
@@ -124,14 +125,5 @@ private int yylex () {
|
|
124
125
|
|
125
126
|
void yyerror(String s)
|
126
127
|
{
|
127
|
-
throw new
|
128
|
+
throw new ConfigException("yyerror: " + s);
|
128
129
|
}
|
129
|
-
|
130
|
-
/*public static void main(String args[])
|
131
|
-
{
|
132
|
-
Parser yyparser = new Parser();
|
133
|
-
ParserExp exp = yyparser.parse("boolean = true");
|
134
|
-
HashMap<String, Object> variables = new HashMap<>();
|
135
|
-
variables.put("boolean", Boolean.TRUE);
|
136
|
-
System.out.println("ans: " + exp.eval(variables));
|
137
|
-
}*/
|
@@ -1,5 +1,6 @@
|
|
1
1
|
package org.embulk.filter.row.where;
|
2
2
|
|
3
|
+
import org.embulk.config.ConfigException;
|
3
4
|
import org.embulk.spi.Schema;
|
4
5
|
import org.embulk.spi.SchemaConfigException;
|
5
6
|
import org.embulk.spi.time.Timestamp;
|
@@ -62,10 +63,11 @@ public class TestYylex
|
|
62
63
|
{
|
63
64
|
Schema schema = Schema.builder()
|
64
65
|
.add("foobar", BOOLEAN)
|
66
|
+
.add("_foobar", BOOLEAN)
|
65
67
|
.add("foo bar", BOOLEAN)
|
66
68
|
.add("foo\"bar", BOOLEAN)
|
67
|
-
.add("$.foo.bar", BOOLEAN)
|
68
|
-
.add("$['foo'][0:4][*]", BOOLEAN)
|
69
|
+
.add("$.foo.bar", BOOLEAN)
|
70
|
+
.add("$['foo'][0:4][*]", BOOLEAN)
|
69
71
|
.build();
|
70
72
|
yyparser = new Parser(schema);
|
71
73
|
|
@@ -81,6 +83,10 @@ public class TestYylex
|
|
81
83
|
assertNextToken(Parser.IDENTIFIER);
|
82
84
|
assertIdentifier("foobar");
|
83
85
|
|
86
|
+
lexer = new Yylex(" _foobar ", yyparser);
|
87
|
+
assertNextToken(Parser.IDENTIFIER);
|
88
|
+
assertIdentifier("_foobar");
|
89
|
+
|
84
90
|
lexer = new Yylex(" \"foo bar\" ", yyparser);
|
85
91
|
assertNextToken(Parser.IDENTIFIER);
|
86
92
|
assertIdentifier("foo bar");
|
@@ -89,7 +95,7 @@ public class TestYylex
|
|
89
95
|
assertNextToken(Parser.IDENTIFIER);
|
90
96
|
assertIdentifier("foo\"bar");
|
91
97
|
|
92
|
-
lexer = new Yylex("$.foo.bar", yyparser);
|
98
|
+
lexer = new Yylex("\"$.foo.bar\"", yyparser);
|
93
99
|
assertNextToken(Parser.IDENTIFIER);
|
94
100
|
assertIdentifier("$.foo.bar");
|
95
101
|
|
@@ -97,12 +103,20 @@ public class TestYylex
|
|
97
103
|
assertNextToken(Parser.IDENTIFIER);
|
98
104
|
assertIdentifier("$['foo'][0:4][*]");
|
99
105
|
|
106
|
+
try {
|
107
|
+
lexer = new Yylex("foo-bar", yyparser);
|
108
|
+
assertNextToken(Parser.IDENTIFIER);
|
109
|
+
assertTrue(false);
|
110
|
+
}
|
111
|
+
catch (ConfigException e) {
|
112
|
+
}
|
113
|
+
|
100
114
|
try {
|
101
115
|
lexer = new Yylex("$['foo'][0:4][*]", yyparser);
|
102
116
|
assertNextToken(Parser.IDENTIFIER);
|
103
117
|
assertTrue(false);
|
104
118
|
}
|
105
|
-
catch (
|
119
|
+
catch (ConfigException e) {
|
106
120
|
}
|
107
121
|
|
108
122
|
try {
|
@@ -110,7 +124,7 @@ public class TestYylex
|
|
110
124
|
assertNextToken(Parser.IDENTIFIER);
|
111
125
|
assertTrue(false);
|
112
126
|
}
|
113
|
-
catch (
|
127
|
+
catch (ConfigException e) {
|
114
128
|
}
|
115
129
|
}
|
116
130
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-filter-row
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
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-08-
|
11
|
+
date: 2016-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -65,7 +65,7 @@ files:
|
|
65
65
|
- script/byaccj.sh
|
66
66
|
- settings.gradle
|
67
67
|
- src/main/java/org/embulk/filter/row/AbstractGuardColumnVisitor.java
|
68
|
-
- src/main/java/org/embulk/filter/row/
|
68
|
+
- src/main/java/org/embulk/filter/row/BuilderColumnVisitorImpl.java
|
69
69
|
- src/main/java/org/embulk/filter/row/GuardColumnVisitorAndImpl.java
|
70
70
|
- src/main/java/org/embulk/filter/row/GuardColumnVisitorOrImpl.java
|
71
71
|
- src/main/java/org/embulk/filter/row/GuardColumnVisitorWhereImpl.java
|
@@ -94,7 +94,7 @@ files:
|
|
94
94
|
- src/test/java/org/embulk/filter/row/condition/TestTimestampCondition.java
|
95
95
|
- src/test/java/org/embulk/filter/row/where/TestParser.java
|
96
96
|
- src/test/java/org/embulk/filter/row/where/TestYylex.java
|
97
|
-
- classpath/embulk-filter-row-0.3.
|
97
|
+
- classpath/embulk-filter-row-0.3.1.jar
|
98
98
|
homepage: https://github.com/sonots/embulk-filter-row
|
99
99
|
licenses:
|
100
100
|
- MIT
|
Binary file
|