embulk-filter-row 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|