query_helper 0.3.6 → 0.4.0
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/Gemfile.lock +1 -1
- data/lib/query_helper/sql_parser.rb +4 -2
- data/lib/query_helper/version.rb +1 -1
- data/lib/query_helper.rb +6 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ad56f0d478e804e375bb1e51305dad25b306d34a0db834b5ff3f67bfc4aeab1
|
4
|
+
data.tar.gz: 401fd61c7e653858ce46527efa430d3ce39ad2ec81b96b245d5870bbc32eac3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8bad72d56d042dde48a2316682adb871aeba56f19e1518c4488ad0bc12b205e8157542ee1d25fe76bd9c6df27a3f2a1a1e44449f248b2d4891f6d0017899d90
|
7
|
+
data.tar.gz: de8c9f4e1f22bc806c9857dfba844350c3ec65ff62bc7be19ad21aa1f53d2204285b1fe571289e54866850f88b68dc1615e8b2708bd8e113a14985162f948921
|
data/Gemfile.lock
CHANGED
@@ -18,7 +18,9 @@ class QueryHelper
|
|
18
18
|
|
19
19
|
def remove_comments
|
20
20
|
# Remove SQL inline comments (/* */) and line comments (--)
|
21
|
-
@sql = @sql.gsub(
|
21
|
+
@sql = @sql.gsub(%r{/\*[^/]*?\*/}m, '') # Removes multi-line comments (/* ... */)
|
22
|
+
.gsub(/--[^\n]*/, '') # Removes single-line comments (--)
|
23
|
+
|
22
24
|
@sql.squish!
|
23
25
|
end
|
24
26
|
|
@@ -186,7 +188,7 @@ class QueryHelper
|
|
186
188
|
ColumnMap.new(
|
187
189
|
alias_name: sql_alias,
|
188
190
|
sql_expression: sql_expression.squish,
|
189
|
-
aggregate:
|
191
|
+
aggregate: /\b(array_agg|avg|bit_and|bit_or|bool_and|bool_or|boolor_agg|booland_agg|count|every|json_agg|jsonb_agg|json_object_agg|jsonb_object_agg|max|min|string_agg|sum|xmlagg)\((.*)\)/.match?(sql_expression)
|
190
192
|
) if sql_alias
|
191
193
|
end
|
192
194
|
column_maps.compact
|
data/lib/query_helper/version.rb
CHANGED
data/lib/query_helper.rb
CHANGED
@@ -280,8 +280,12 @@ class QueryHelper
|
|
280
280
|
raise ArgumentError.new("search_fields not defined") unless @search_fields.length > 0
|
281
281
|
placement = :where
|
282
282
|
maps = column_maps.select do |cm|
|
283
|
-
|
284
|
-
|
283
|
+
if @search_fields.include? cm.alias_name
|
284
|
+
placement = :having if cm.aggregate
|
285
|
+
true
|
286
|
+
else
|
287
|
+
false
|
288
|
+
end
|
285
289
|
end
|
286
290
|
bind_variable = ('a'..'z').to_a.shuffle[0,20].join.to_sym
|
287
291
|
@bind_variables[bind_variable] = "%#{@search_string}%"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: query_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patterninc
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -216,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
216
|
- !ruby/object:Gem::Version
|
217
217
|
version: '0'
|
218
218
|
requirements: []
|
219
|
-
rubygems_version: 3.
|
219
|
+
rubygems_version: 3.5.22
|
220
220
|
signing_key:
|
221
221
|
specification_version: 4
|
222
222
|
summary: Ruby Gem to help with pagination and data formatting at Pattern, Inc.
|