sparkql 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDMyYjhlMDJkY2ZkZjJmN2VlYzVmNTdkODNjNTRjZjFkMjEwZDJiMA==
4
+ ZDQ2MjhlNzA5NWY1ZGM5YmM4ODEzMGE2Y2Y5ZWQ0YzkzZWYwODMxYQ==
5
5
  data.tar.gz: !binary |-
6
- N2YwNzMyMTJjMGFjZmQ5MDM0OWYyZDYyM2Y2MmQwMWEyMWZhZTg0MA==
6
+ OTNiMjFjMjA2ODZmMmRmYWNkM2JiNjA4NDA5NjcwZDBhNTVlY2Q5NA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MWQxYWQwZmZjZTRlNGMwYzBkNGJkYWRjZTQxZTRhMTA1ZTZmYzVkNDQ0OTI0
10
- OGY5ZmRlMjRlNTUzMGIwOWJlNGY4ODcxZjEyMDg3YTRkMDVhMzNkNDUwYTYy
11
- NTFmYThlMGRkMzE2YjcwNzkxZDgwOGQ3MDBkMDMwNjU4ZGYwZTM=
9
+ MWFhMTU2MDQ1ZjBkZDFhOTAyNGMyNDM4MjZmZDI0ODg0ZTg3NmI1MWRkYWMz
10
+ ZTI4ZDgxNTg1YWFhY2ZkOTUxOTM5ZGQ1NWEwMGMzNWVlNDc3NDYyOTMzODEx
11
+ YmEwNDNmMGMwZWFkOTk1MzNkZjVkMGVmOGJjYzE0MzViYTczZGY=
12
12
  data.tar.gz: !binary |-
13
- YjM1YWE1MGJlNTlhNWZiZmY5YjZkN2ZhMGIyYTUxMDQ5NzY3N2U4N2RmMTFj
14
- YmFmODY2ZTEwNzA2NTFlMzkxNzJhM2RiYTM2Mjc1YTJhMzhjZTFmNWYxMDUy
15
- YzZlMmQ0N2RkMWQ2ZGE2M2Y5MjZjMDBjYWRkNzc4NzM2NWVlNzA=
13
+ Y2ZlNWFkYThlN2UwMjFiNzI5ZjE5NTJkNmY3OTNlODRhMzY1YjNhNjJmYTRl
14
+ ODg5ZTQ4ZDJlMjU0NWRiYmNmYzViNzdjZDY0NmNmYTAxYjc3YTAxOTg0YmEy
15
+ YmVjYThkZTg0ZGZiOTdlM2Y0YWYyNzY0YTE4ZTU1Y2QzN2NhMzU=
data/CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
- v1.0.0, 2016-02-11 ([changes](https://github.com/sparkapi/sparkql/compare/v0.3.20...v1.0.0))
1
+ v1.0.1, 2016-02-24 ([changes](https://github.com/sparkapi/sparkql/compare/v1.0.0...v1.0.1))
2
+ -------------------
3
+ * [IMPROVEMENT] Support scientific notation for floating point numbers
4
+
5
+ v1.0.0, 2016-02-11 ([changes](https://github.com/sparkapi/sparkql/compare/v0.3.23...v1.0.0))
2
6
  -------------------
3
7
  * [IMPROVEMENT] function support for fields (delayed resolution). Backing systems must
4
8
  implement necessary function behaviour.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.0.1
data/lib/sparkql/token.rb CHANGED
@@ -7,7 +7,7 @@ module Sparkql::Token
7
7
  STANDARD_FIELD = /[A-Z]+[A-Za-z0-9]*/
8
8
  CUSTOM_FIELD = /^(\"([^$."][^."]+)\".\"([^$."][^."]*)\")/
9
9
  INTEGER = /^\-?[0-9]+/
10
- DECIMAL = /^\-?[0-9]+\.[0-9]+/
10
+ DECIMAL = /^\-?[0-9]+\.[0-9]+([Ee]-?[0-9]{1,2})?/
11
11
  CHARACTER = /^'([^'\\]*(\\.[^'\\]*)*)'/
12
12
  DATE = /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}/
13
13
  TIME = /^[0-9]{2}\:[0-9]{2}((\:[0-9]{2})(\.[0-9]{1,50})?)?/
@@ -100,4 +100,13 @@ class LexerTest < Test::Unit::TestCase
100
100
  assert_equal :DATETIME, token.first, op
101
101
  end
102
102
  end
103
+
104
+ def test_decimal_matches
105
+ ['-15.42', '1.0', '0.22', '9.0E-6', '-9.0E-3'].each do |op|
106
+ @lexer = Lexer.new(op)
107
+ token = @lexer.shift
108
+ assert_equal :DECIMAL, token.first, op
109
+ end
110
+ end
111
+
103
112
  end
@@ -67,6 +67,21 @@ class ParserCompatabilityTest < Test::Unit::TestCase
67
67
  :type => :decimal,
68
68
  :operator => "Eq"
69
69
  },
70
+ {
71
+ :string => "FloatField Eq 9.1E-6",
72
+ :type => :decimal,
73
+ :operator => "Eq"
74
+ },
75
+ {
76
+ :string => "FloatField Eq -9.1E-6",
77
+ :type => :decimal,
78
+ :operator => "Eq"
79
+ },
80
+ {
81
+ :string => "FloatField Eq 1.0E8",
82
+ :type => :decimal,
83
+ :operator => "Eq"
84
+ },
70
85
  {
71
86
  :string => "FloatField Eq -2001.120,-2002.0",
72
87
  :type => :decimal,
@@ -468,6 +483,13 @@ class ParserCompatabilityTest < Test::Unit::TestCase
468
483
  assert_equal true, parser.escape_value(expressions.first)
469
484
  end
470
485
 
486
+ test "escape decimal values" do
487
+ parser = Parser.new
488
+ expressions = parser.tokenize( "DecimalField Eq 0.00005 And DecimalField Eq 5.0E-5" )
489
+ assert_equal 5.0E-5, parser.escape_value(expressions.first)
490
+ assert_equal parser.escape_value(expressions.first), parser.escape_value(expressions.last)
491
+ end
492
+
471
493
  test "Between" do
472
494
  ["BathsFull Bt 10,20", "DateField Bt 2012-12-31,2013-01-31"].each do |f|
473
495
  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.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wade McEwen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-12 00:00:00.000000000 Z
11
+ date: 2016-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: georuby