featurebase/client
reesporte eab6174388 make pql.Decimal.Value a private big.Int field
This ensures that we can't overflow when adding `pql.Decimal`s together. The
only place we can possibly overflow is when converting pql.Decimal to an Int64,
but that is a risk we have to take. Also, the only place we do this is in our
ToRowser. We could maybe change that to strings, so the presentation of data
doesn't indicate an overflow, but that is a later decision to make. It will
also involve fixing the generate-proto-grpc make command, because that's broken
rn.
2022-06-06 16:44:01 -05:00
..
csv Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
docs remove attributes 2021-05-14 10:28:08 -04:00
egpool Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
batch.go add timestamp nils to nullIndices (#2095) 2022-06-02 15:54:24 -05:00
batch_test.go add timestamp nils to nullIndices (#2095) 2022-06-02 15:54:24 -05:00
client.go decode int base from schema in client code 2022-05-29 09:03:27 -05:00
client_it_test.go decode int base from schema in client code 2022-05-29 09:03:27 -05:00
client_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
cluster.go client side retry ingestAPI requests on primary host 2022-03-10 10:22:13 -06:00
cluster_test.go client side retry ingestAPI requests on primary host 2022-03-10 10:22:13 -06:00
doc.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
error.go client side retry ingestAPI requests on primary host 2022-03-10 10:22:13 -06:00
ingest_api_batch.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
ingest_api_batch_test.go client side retry ingestAPI requests on primary host 2022-03-10 10:22:13 -06:00
logimport.go add copyright notice back in 2021-12-10 11:01:04 -06:00
logimport_test.go add copyright notice back in 2021-12-10 11:01:04 -06:00
metrics.go "all bitmap" multi-field, single-shard ingest 2022-05-27 11:25:17 -05:00
orm.go don't encode 'base' in the field options json 2022-05-29 09:03:27 -05:00
orm_test.go make pql.Decimal.Value a private big.Int field 2022-06-06 16:44:01 -05:00
README.md remove trailing spaces en masse (#2024) 2022-04-18 09:31:35 -05:00
record.go add copyright notice back in 2021-12-10 11:01:04 -06:00
record_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
response.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
response_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
shardnodes.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
tracer.go add copyright notice back in 2021-12-10 11:01:04 -06:00
validate.go add copyright notice back in 2021-12-10 11:01:04 -06:00
validate_test.go add copyright notice back in 2021-12-10 11:01:04 -06:00
version.go add copyright notice back in 2021-12-10 11:01:04 -06:00

Go Client for Pilosa

Go client for Pilosa high performance distributed index.

Usage

If you have the pilosa repo in your GOPATH, you can import the library in your code using:

import "github.com/pilosa/pilosa/v2/client"

Quick overview

Assuming Pilosa server is running at localhost:10101 (the default):

package main

import (
	"fmt"

	"github.com/pilosa/pilosa/v2/client"
)

func main() {
	// Create the default client
	cli := client.DefaultClient()

	// Retrieve the schema
	schema, err := cli.Schema()

	// Create an Index object
	myindex := schema.Index("myindex")

	// Create a Field object
	myfield := myindex.Field("myfield")

	// make sure the index and the field exists on the server
	err := cli.SyncSchema(schema)

	// Send a Set query. If err is non-nil, response will be nil.
	response, err := cli.Query(myfield.Set(5, 42))

	// Send a Row query. If err is non-nil, response will be nil.
	response, err = cli.Query(myfield.Row(5))

	// Get the result
	result := response.Result()
	// Act on the result
	if result != nil {
		columns := result.Row().Columns
		fmt.Println("Got columns: ", columns)
	}

	// You can batch queries to improve throughput
	response, err = cli.Query(myindex.BatchQuery(
		myfield.Row(5),
		myfield.Row(10)))
	if err != nil {
		fmt.Println(err)
	}

	for _, result := range response.Results() {
		// Act on the result
		fmt.Println(result.Row().Columns)
	}
}

Documentation

Data Model and Queries

See: Data Model and Queries

Executing Queries

See: Server Interaction

Other Documentation