sparkql 1.1.16 → 1.1.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +4 -0
- data/VERSION +1 -1
- data/lib/sparkql/function_resolver.rb +20 -0
- data/test/unit/parser_test.rb +24 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzI5MGFiMTAwMTgyYjkyZDQyODY4MGE3ZDFkYTQ1NjFiODYyODAxMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGI1OTQwNWQ5OTg1MzNkYTc2MzQzM2Y1ZjRmMGViNWFlODQ5ZTE2MQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmVhZmM2ZWQzZmI0M2EyZmNlNmE2MTE0ZTE3MGZmZDU0MWIxZDZlZmMxOTA5
|
10
|
+
NGViMTdjNjI0YzkwY2FkODUxY2I5M2RlMTY4OTRmNTQ2NjY5NjQzZTIyZjgx
|
11
|
+
ZTNmMTUzNDFiMDI0ZWNmMzk5MzcyMjQ0ZWViMDQ4ZDE3NmRlOWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGNiYmRhOTQ2ODlhMzM4ODRlNzdiYTg5YmNkNDZkZmIxOTc5ZTdkNTIxMjhh
|
14
|
+
MjgzMGY4ZmE3MDgzNTk5NGJmMTUzYjExYTNkYzhjMGNkY2IzOWNkMDU5OGEy
|
15
|
+
YTJkYTIxZDM5ODJkMDI5YWQxMjBmZjRlYjdhYzNlMjhiYTZkMzQ=
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.17
|
@@ -71,6 +71,11 @@ class Sparkql::FunctionResolver
|
|
71
71
|
:args => [[:field, :character], :character],
|
72
72
|
:return_type => :integer
|
73
73
|
},
|
74
|
+
:concat => {
|
75
|
+
:args => [[:field, :character], :character],
|
76
|
+
:resolve_for_type => true,
|
77
|
+
:return_type => :character
|
78
|
+
},
|
74
79
|
:cast => {
|
75
80
|
:args => [[:field, :character, :decimal, :integer, :null], :character],
|
76
81
|
:resolve_for_type => true,
|
@@ -553,6 +558,21 @@ class Sparkql::FunctionResolver
|
|
553
558
|
}
|
554
559
|
end
|
555
560
|
|
561
|
+
def concat_character(arg1, arg2)
|
562
|
+
{
|
563
|
+
:type => :character,
|
564
|
+
:value => "'#{arg1}#{arg2}'"
|
565
|
+
}
|
566
|
+
end
|
567
|
+
|
568
|
+
def concat_field(arg1, arg2)
|
569
|
+
{
|
570
|
+
:type => :function,
|
571
|
+
:value => 'concat',
|
572
|
+
:args => [arg1, arg2]
|
573
|
+
}
|
574
|
+
end
|
575
|
+
|
556
576
|
def date_field(arg)
|
557
577
|
{
|
558
578
|
:type => :function,
|
data/test/unit/parser_test.rb
CHANGED
@@ -753,6 +753,30 @@ class ParserTest < Test::Unit::TestCase
|
|
753
753
|
assert_equal(["FieldName"], expression[:function_parameters])
|
754
754
|
end
|
755
755
|
|
756
|
+
def test_concat_with_field
|
757
|
+
filter = "City Eq concat(City, 'b')"
|
758
|
+
@parser = Parser.new
|
759
|
+
expression = @parser.parse(filter).first
|
760
|
+
assert !@parser.errors?, "Filter '#{filter}' failed: #{@parser.errors.first.inspect}"
|
761
|
+
|
762
|
+
assert_equal :function, expression[:type]
|
763
|
+
assert_equal 'concat', expression[:function_name]
|
764
|
+
assert_equal(["City", 'b'], expression[:function_parameters])
|
765
|
+
assert_equal("City", expression[:field])
|
766
|
+
end
|
767
|
+
|
768
|
+
def test_concat_with_literal
|
769
|
+
filter = "City Eq concat('a', 'b')"
|
770
|
+
@parser = Parser.new
|
771
|
+
expression = @parser.parse(filter).first
|
772
|
+
assert !@parser.errors?, "Filter '#{filter}' failed: #{@parser.errors.first.inspect}"
|
773
|
+
|
774
|
+
assert_equal 'concat', expression[:function_name]
|
775
|
+
assert_equal :character, expression[:type]
|
776
|
+
assert_equal "'ab'", expression[:value]
|
777
|
+
assert_equal ["a", "b"], expression[:function_parameters]
|
778
|
+
end
|
779
|
+
|
756
780
|
def test_cast_with_field
|
757
781
|
filter = "cast(ListPrice, 'character') Eq '100000'"
|
758
782
|
@parser = Parser.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparkql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wade McEwen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: georuby
|