Commit graph

30 commits

Author SHA1 Message Date
Travis Turner
1fb540f40b Merge pull request #844 from travisturner/bug-fix-condition-string
Don't include an equal sign in the string representation of a Condition
2017-09-27 11:14:56 -05:00
Travis
2b88d278bc
Implements BETWEEN for Range queries.
The PQL looks like:
```
Range(frame=f, field0 >< [200,610])
```

One thing I noticed while implementing this is that it doesn't seem
like `FieldRange()` is used in either `Frame` or `View`; the Executor
calls `Fragment.FieldRange()` directly. The problem with this is that
the offset logic is calculated in the Frame, but since the Executor
doesn't go through Frame, then the Executor also has to calculate
the offset before calling `Fragment.FieldRange`. We should unify this
logic somewhere. Note, this applies to both `FieldRange` and
`FieldRangeBetween`.
2017-09-25 15:11:04 -05:00
Travis
51ca778d77
Don't include an equal sign in the string representation of a Condition 2017-09-25 14:51:15 -05:00
Ben Johnson
ad847f2c8a
Add field Range() support to Executor. 2017-08-24 13:34:57 -06:00
Ben Johnson
c36fdbfacb
Support PQL Range() queries for fields. 2017-08-12 11:39:25 -06:00
Ben Johnson
ca29f7692b
Fix failing tests when IPv6 is disabled.
Turning off IPv6 causes the tests to fail because the Go
`net.Listen()` function obtains a `[::]` address when using
a `localhost:0` bind address. Looking through the Go source
code, I don't see a good way to fix that.

This change adds a test flag to allow users to specify the
network name when running the test:

```sh
go test github.com/pilosa/pilosa/server -network tcp4
```
2017-06-01 14:43:59 -06:00
Alan Bernstein
64a12c939c Fix typo in error message 2017-05-16 17:56:16 -05:00
Ben Johnson
0b8d935f1c
Add inverse TopN() support.
The TopN() call now supports an `inverse` boolean argument to
specify if the call should operate on the standard view or the
inverse view.
2017-05-15 10:35:48 -06:00
Ben Johnson
e3d6f96657
Add max-writes-per-requests limit.
A configurable limit has been added to restrict the number of
mutating calls in a `pql.Query`. This is to prevents requests from
timing out from large queries.

The default is set to 5000 writes per request and is configurable
through the configuration file and the command line flags.
2017-05-03 08:53:20 -06:00
Cody Soyland
3996b56b88 Apply Apache License 2.0 2017-04-28 14:22:03 -05:00
Travis
7dc06f918b
Determine if a Call is inverse or not so that the map to slices is correct. 2017-04-24 16:19:17 -05:00
Matt Jaffee
e6309d45e1 make sure exported functions are godoc'd 2017-04-18 15:10:59 -05:00
Matt Jaffee
0a324d14a5 add fix all package level docs 2017-04-18 14:11:42 -05:00
Matt Jaffee
6f443f447a add signed int support
this affects the scanner/parser and makes it produce signed ints rather than
uints, and so it affects all code that is expecting unsighed ints to come out of
the parser.
2017-04-18 12:50:26 -05:00
Matt Jaffee
69586ea074 rename NUMBER -> INTEGER 2017-03-08 14:03:21 -06:00
Matt Jaffee
be8b976ba1 update scanner comment and test float with trailing dot 2017-03-07 15:56:02 -06:00
Matt Jaffee
f2707fad18 update tokens string map to include FLOAT 2017-03-07 15:40:50 -06:00
Matt Jaffee
dbfc6052b7 add float support to scanner/parser for arguments 2017-03-07 15:40:50 -06:00
Yuce Tekol
6f645b9db5 SetBit uses TimeFormat. Implements 315 2017-02-24 16:35:41 +03:00
Yuce Tekol
1eff86f78b Moved timestamp from HTTP query to PQL 2017-02-08 16:04:19 +03:00
Ben Johnson
f39768b49b Refactor parser & AST to remove compile-time field names.
Consolidates all the pql.Call implementations into a single
pql.Call struct. This is needed to support user-defined schemas
on frames.

This also has the added benefit that a lot of redundant parsing
code has been consolidated.
2017-02-02 14:27:18 -07:00
Cody Soyland
5206461d51 Migrate from Umbel to Pilosa organization on Github 2016-11-28 15:21:11 -06:00
Ben Johnson
569bafdc7d add bulk call support to the query endpoint
This commit changes the `pql.Query` so that it can accept one or more
top-level calls instead of only one.

The query request format change because a query with a single call is
still valid. However, the result format now returns a `results` field
that has one result for each top-level call. The `profiles` field is
still the same, however, it combines all profiles from all bitmap
responses into one return so that there's not duplicate attributes.

Fixes #59
2016-03-08 14:34:37 -07:00
Ben Johnson
5a63a14742 refetch full counts for TopN()
This commits adds refetching to get the actual TopN() count
after the top bitmaps are determined.

Fixes #57
2016-03-03 13:03:20 -07:00
Ben Johnson
cca8970019 add Range() support
This commit adds support for setting bits in time-based frames.
2016-02-23 14:53:03 -07:00
Ben Johnson
b68c1caea0 fix int64 attr 2016-02-17 10:59:17 -07:00
Ben Johnson
d3500c64f7 TopN()
This commit adds TopN() functionality to the fragment, executor
and handler.
2016-02-09 14:43:49 -07:00
Ben Johnson
e0937b79c0 add bitmap and profile attribute support
This commit adds the ability to set string, integer, and boolean
values on bitmaps and profiles within Pilosa. Bitmap attributes
are automatically returned when making a `Bitmap()` call. Profile
attributes must be requested by setting `profile=true` in the
URL.

The function names have also been renamed to initial caps so that
the PQL query language can support math operations in the future.
2016-02-01 08:44:33 -07:00
Todd Gruben
61f791eeac added support for period (.) in frame names 2016-01-06 15:24:25 -06:00
Ben Johnson
a632d08629 refactor
This commit refactors the pilosa codebase. It makes several major
changes:

* Removes bitmap handles
* Removes dispatch/hold/transport
* Removes etcd dependency
* Adds consistent hash ring for slice placement
* Refactors parser/lexer
* Adds strong typing to PQL AST
* Flattens package hierarchy
2015-12-02 15:34:49 -07:00