diff --git a/Gemfile b/Gemfile index acf8813a5e3aebebbee6a088b8a3d88aa29c1299..9de79a3346ad73ea739aa360cef66858f04487b5 100644 --- a/Gemfile +++ b/Gemfile @@ -647,7 +647,7 @@ gem 'valid_email', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory # JSON gem 'jsonb_accessor', '~> 1.3.10' # rubocop:todo Gemfile/MissingFeatureCategory -gem 'json', '~> 2.6.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'json', '~> 2.7.2', feature_category: :shared gem 'json_schemer', '~> 0.2.18' # rubocop:todo Gemfile/MissingFeatureCategory gem 'oj', '~> 3.13.21' # rubocop:todo Gemfile/MissingFeatureCategory gem 'oj-introspect', '~> 0.7' # rubocop:todo Gemfile/MissingFeatureCategory diff --git a/Gemfile.checksum b/Gemfile.checksum index 22627eb5936bf89221f838230753f1fdb7aee011..4fed3d4c703f9ebf8d96a967a627c2bec7a17395 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -331,8 +331,8 @@ {"name":"jira-ruby","version":"2.3.0","platform":"ruby","checksum":"abf26e6bff4a8ea40bae06f7df6276a5776905c63fb2070934823ca54f62eb62"}, {"name":"jmespath","version":"1.6.2","platform":"ruby","checksum":"238d774a58723d6c090494c8879b5e9918c19485f7e840f2c1c7532cf84ebcb1"}, {"name":"js_regex","version":"3.8.0","platform":"ruby","checksum":"7934bcdd5a0e6d5af4a520288fd4684a02a472ae55831d9178ccaf82356344b5"}, -{"name":"json","version":"2.6.3","platform":"java","checksum":"ea8c47427a2c876121b9a0ab53043ca390013a76374330eabd923bd81914e563"}, -{"name":"json","version":"2.6.3","platform":"ruby","checksum":"86aaea16adf346a2b22743d88f8dcceeb1038843989ab93cda44b5176c845459"}, +{"name":"json","version":"2.7.2","platform":"java","checksum":"138e3038b5361b3d06ee2e8aa2be00bed0d0de4ef5f1553fc5935e5b93aca7ee"}, +{"name":"json","version":"2.7.2","platform":"ruby","checksum":"1898b5cbc81cd36c0fd4d0b7ad2682c39fb07c5ff682fc6265f678f550d4982c"}, {"name":"json-jwt","version":"1.15.3","platform":"ruby","checksum":"66db4f14e538a774c15502a5b5b26b1f3e7585481bbb96df490aa74b5c2d6110"}, {"name":"json_schemer","version":"0.2.18","platform":"ruby","checksum":"3362c21efbefdd12ce994e541a1e7fdb86fd267a6541dd8715e8a580fe3b6be6"}, {"name":"jsonb_accessor","version":"1.3.10","platform":"java","checksum":"6630ac69dac46457b03e1352178ed3e2d7ba2d8edb99f2e9b64a0e60cda9ed26"}, diff --git a/Gemfile.lock b/Gemfile.lock index 34c885f490027704ab5eadd3c13cf1c0ae180383..67ea8c49e9233bff0ca10bf530437a8e8b07f452 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,7 +10,7 @@ PATH click_house-client (0.1.0) activesupport (< 8) addressable (~> 2.8) - json (~> 2.6.3) + json (~> 2.7.2) PATH remote: gems/csv_builder @@ -979,7 +979,7 @@ GEM character_set (~> 1.4) regexp_parser (~> 2.5) regexp_property_values (~> 1.0) - json (2.6.3) + json (2.7.2) json-jwt (1.15.3) activesupport (>= 4.2) aes_key_wrap @@ -2073,7 +2073,7 @@ DEPENDENCIES ipynbdiff! jira-ruby (~> 2.3.0) js_regex (~> 3.8) - json (~> 2.6.3) + json (~> 2.7.2) json_schemer (~> 0.2.18) jsonb_accessor (~> 1.3.10) jwt (~> 2.5) diff --git a/gems/click_house-client/Gemfile.lock b/gems/click_house-client/Gemfile.lock index a8e2b7ec0c6378e77d94aa6d1f494e001142b60c..d9d672240d2ce4e6f49a3af85d18bb490db8f447 100644 --- a/gems/click_house-client/Gemfile.lock +++ b/gems/click_house-client/Gemfile.lock @@ -4,7 +4,7 @@ PATH click_house-client (0.1.0) activesupport (< 8) addressable (~> 2.8) - json (~> 2.6.3) + json (~> 2.7.2) GEM remote: https://rubygems.org/ @@ -19,23 +19,25 @@ GEM ast (2.4.2) concurrent-ruby (1.2.2) diff-lcs (1.5.0) - gitlab-styles (10.1.0) - rubocop (~> 1.50.2) - rubocop-graphql (~> 0.18) - rubocop-performance (~> 1.15) - rubocop-rails (~> 2.17) - rubocop-rspec (~> 2.22) + gitlab-styles (12.0.1) + rubocop (~> 1.62.1) + rubocop-factory_bot (~> 2.25.1) + rubocop-graphql (~> 1.5.0) + rubocop-performance (~> 1.20.2) + rubocop-rails (~> 2.24.0) + rubocop-rspec (~> 2.27.1) i18n (1.14.1) concurrent-ruby (~> 1.0) - json (2.6.3) + json (2.7.2) + language_server-protocol (3.17.0.3) minitest (5.18.1) parallel (1.23.0) - parser (3.2.2.3) + parser (3.3.3.0) ast (~> 2.4.1) racc public_suffix (5.0.3) racc (1.7.1) - rack (3.0.8) + rack (3.1.6) rainbow (3.1.1) rake (13.0.6) regexp_parser (2.8.1) @@ -53,33 +55,35 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) rspec-support (3.12.1) - rubocop (1.50.2) + rubocop (1.62.1) json (~> 2.3) + language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 3.2.0.0) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.28.0, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.29.0) - parser (>= 3.2.1.0) + rubocop-ast (1.31.3) + parser (>= 3.3.1.0) rubocop-capybara (2.18.0) rubocop (~> 1.41) - rubocop-factory_bot (2.23.1) - rubocop (~> 1.33) - rubocop-graphql (0.19.0) - rubocop (>= 0.87, < 2) - rubocop-performance (1.18.0) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-rails (2.20.2) + rubocop-factory_bot (2.25.1) + rubocop (~> 1.41) + rubocop-graphql (1.5.2) + rubocop (>= 0.90, < 2) + rubocop-performance (1.20.2) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) + rubocop-rails (2.24.1) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - rubocop-rspec (2.22.0) - rubocop (~> 1.33) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.27.1) + rubocop (~> 1.40) rubocop-capybara (~> 2.17) rubocop-factory_bot (~> 2.22) ruby-progressbar (1.13.0) @@ -92,7 +96,7 @@ PLATFORMS DEPENDENCIES click_house-client! - gitlab-styles (~> 10.1.0) + gitlab-styles (~> 12.0.1) rake (~> 13.0) rspec (~> 3.0) rubocop diff --git a/gems/click_house-client/click_house-client.gemspec b/gems/click_house-client/click_house-client.gemspec index 5544065ef17077d0151360ad05cdc0df237509a5..55f30cbc10f93a751e80766a4704d8047a9d2e12 100644 --- a/gems/click_house-client/click_house-client.gemspec +++ b/gems/click_house-client/click_house-client.gemspec @@ -14,9 +14,9 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "activesupport", "< 8" spec.add_runtime_dependency "addressable", "~> 2.8" - spec.add_runtime_dependency 'json', '~> 2.6.3' + spec.add_runtime_dependency 'json', '~> 2.7.2' - spec.add_development_dependency 'gitlab-styles', '~> 10.1.0' + spec.add_development_dependency 'gitlab-styles', '~> 12.0.1' spec.add_development_dependency "rake", "~> 13.0" spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency 'rubocop' diff --git a/gems/click_house-client/lib/click_house/client/query.rb b/gems/click_house-client/lib/click_house/client/query.rb index 65582031a4cd84d40ec87889710cbd4f01857f7a..608feabe324ee31655bbb5fda4d0a871f91123c2 100644 --- a/gems/click_house-client/lib/click_house/client/query.rb +++ b/gems/click_house-client/lib/click_house/client/query.rb @@ -7,6 +7,12 @@ class Query < QueryLike PLACEHOLDER_REGEX = /{\w+:\w+}/ # example: {var:UInt8} PLACEHOLDER_NAME_REGEX = /{(\w+):/ # example: {var:UInt8} => var + def self.build(query) + return query if query.is_a?(ClickHouse::Client::QueryLike) + + new(raw_query: query) + end + def initialize(raw_query:, placeholders: {}) raise QueryError, 'Empty query string given' if raw_query.blank? @@ -18,7 +24,7 @@ def initialize(raw_query:, placeholders: {}) # If there are subqueries, merge their placeholders as well. def placeholders all_placeholders = @placeholders.select { |_, v| !v.is_a?(QueryLike) } - @placeholders.each do |_name, value| + @placeholders.each_value do |value| next unless value.is_a?(QueryLike) all_placeholders.merge!(value.placeholders) do |key, a, b| @@ -55,12 +61,6 @@ def to_redacted_sql(bind_index_manager = BindIndexManager.new) end end - def self.build(query) - return query if query.is_a?(ClickHouse::Client::QueryLike) - - new(raw_query: query) - end - private attr_reader :raw_query