
Security News
New Website “Is It Really FOSS?” Tracks Transparency in Open Source Distribution Models
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Install the gem and add to the application's Gemfile by executing:
$ bundle add pinot
If bundler is not being used to manage dependencies, install the gem by executing:
$ gem install pinot
To configure our client, we must have some data about our pinot cluster, its broken and controller host, and which port/protocol both services are using. After having this information, we can setup the client to use it.
host = "localhost"
controller_host = "localhost"
client = Pinot::Client.new(host: host, port: 443, protocol: :https, controller_host: controller_host, controller_port: 443)
After setting up your client, we can start using it to query the cluster.
client.execute("select * from table;")
After querying, it returns a HTTPX::ErrorResponse
in case of any HTTP error, like a timeout, or connection refused, we are returning the client's error to make easier to troubleshoot any problem and handle it accordingly.
In case of success, it returns a Pinot::Response
, an enumerable where you can interact over the returned rows.
Each row is an array with row's values.
result = client.execute("select id, name, age from people;")
result.each do |row|
puts row[0] # id
puts row[1] # name
puts row[2] # age
end
If the column names and types are needed, can call columns
method on the response.
result = client.execute("select count(*) from people;")
resp.columns
# {"count(*)"=>"LONG"}
It's not on the public API, but the instance variable @payload
contains all information returned from the Pinot cluster in case can help with troubleshooting
In case there's the need to pass any Pinot query options, it's can be done when initializing the client.
client = Pinot::Client.new(query_options: {use_multistage_engine: true}, **options)
Any of the query options on the documentation is supported, remember to use its name with underscore formatting.
In case your pinot cluster is using authentication bearer token, you can specify it on the client constructor
client = Pinot::Client.new(bearer_token: "my-secret", **client_args)
Using Pinot cluster inside a VPC and need to jump through a bastion host using socks5? We got your back!
client = Pinot::Client.new(socks5_uri: "socks5://localhost:80", **client_args)
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/clickfunnels2/pinot. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
Everyone interacting in the Pinot project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
FAQs
Unknown package
We found that pinot demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.