No description
Find a file
Travis Turner f4385df2cf
Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305)
* Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON

When I started this, it was meant to be a quick fix to address the confusing
result formats we were seeing in the CLI. For example, all large integer values
were displayed in scientifc notation. This is because we were passing the result
types from JSON (in this case, float64) into pretty print. Similarly, `IDSets`
and `StringSets` where being printed using the default go Stringer for the types
[]int64 and []string respectively.

I started by writing a customer UnmarshalJSON() method for the `SQLResponse`
type. Part of this (the part which converts data types based on header types)
was already being used in dax tests, so this just formalizes that logic as part
of the `SQLResponse` type.

Then I realized that the sql3 tests (run against the `sql3` package) were
failing because sql3 is not actually returning the `IDSets` and `StringSets`
types. A future task is to formalize return types, define them, and modify sql3
to return them. Once that is done, we can remove the "typed" switch in the
`SQLResponse` json unmarshaller.

Another significant change is the modification to the `ExprDataType` interface:
```
type ExprDataType interface {
	exprDataType()
	TypeName() string
	TypeDescription() string
	TypeInfo() map[string]interface{}
}
```
I added two more methods in order to distinguish between a type (`DECIMAL`), its
description (`DECIMAL(2)`), and its type info (`"scale": int64(2)`). Currently,
the description can be used as the field definition in a CREATE TABLE statement,
but we may want to re-think that. Also, Decimal is the only type currently using
TypeInfo.

Finally, I tried to consilidate things around `dax.FieldType` instead of
comparing against parser types outside of sql3. We still have some sql3 parser
and planner types lurking about, but we can address those in future commits.

* Add some test coverage

* smoke test expected INT, now int

* minor fixes

* Introduce WireQueryResponse and related types

This also changes dax.FieldType to dax.BaseType.

* Populate WireQueryResponse correctly

Currently this is in the http handler, and in the queryer.

* Convert sql3 and dax tests to expect pilosa.WireQueryField in results

* fix PQL tests in the SQL defs

* Address a few of the skipped sql tests in dax
2022-11-21 18:43:53 -06:00
.github remove references to CONTRIBUTING and CHANGELOG 2021-11-19 11:22:15 -06:00
.gitlab Cache lattice in CI 2022-11-18 12:55:17 -06:00
api/client enable staticcheck in ci; remove dead code (#2281) 2022-11-07 13:45:19 -06:00
authn Dataframe (#2241) 2022-11-21 17:38:48 -06:00
authz staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
batch run just the batch tests for the batch tests 2022-11-16 15:31:06 -06:00
boltdb staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
client Dataframe (#2241) 2022-11-21 17:38:48 -06:00
cmd fixes FB-1768, two entries for the holder command 2022-11-18 13:41:45 -06:00
ctl Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
dax Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
debugstats add copyright notice back in 2021-12-10 11:01:04 -06:00
disco drop Starting cluster state 2022-11-01 11:47:17 -05:00
encoding/proto Dataframe (#2241) 2022-11-21 17:38:48 -06:00
errors Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
etcd Dataframe (#2241) 2022-11-21 17:38:48 -06:00
fbcloud Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
gcnotify Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
generator add copyright notice back in 2021-12-10 11:01:04 -06:00
gopsutil Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
hash drop ioutil 2022-09-23 16:56:27 -05:00
idk Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
install Packaging improvements to improve mcloud updates (#2288) 2022-11-10 11:13:06 -08:00
internal Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
lattice rename protobuf interface 2022-11-09 11:01:45 -06:00
logger Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
lru fix some staticcheck issues 2021-12-03 09:31:45 -06:00
mock Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
monitor Add proper version info to sentry logs 2022-06-21 11:03:22 -05:00
net staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
pb Dataframe (#2241) 2022-11-21 17:38:48 -06:00
pql Dataframe (#2241) 2022-11-21 17:38:48 -06:00
prometheus Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
proto fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
qa Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
querycontext bump timeout on overlapping write requests test 2022-11-15 13:31:37 -06:00
rbf Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
roaring staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
scripts remove trailing spaces en masse (#2024) 2022-04-18 09:31:35 -05:00
server Dataframe (#2241) 2022-11-21 17:38:48 -06:00
shardwidth Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
short_txkey staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
sql staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
sql3 Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
statik staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
stats use testhook test cleanup 2022-09-26 12:33:43 -05:00
statsd Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
storage remove a bunch of roaring backend stuff 2022-02-02 20:56:18 -06:00
syswrap add copyright notice back in 2021-12-10 11:01:04 -06:00
task implement a task pool 2022-02-14 09:56:19 -06:00
test Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
testdata refactor testing to share clusters more often 2022-09-02 11:40:37 -05:00
testhook drop ioutil 2022-09-23 16:56:27 -05:00
toml add copyright notice back in 2021-12-10 11:01:04 -06:00
tracing Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
txkey staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
vprint add copyright notice back in 2021-12-10 11:01:04 -06:00
.dockerignore FB-1597: unifying idk and featurebase (#2160) 2022-07-28 17:23:16 -05:00
.gitignore Dataframe (#2241) 2022-11-21 17:38:48 -06:00
.golangci.yml enable staticcheck in ci; remove dead code (#2281) 2022-11-07 13:45:19 -06:00
api.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
api_directive.go Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
api_directive_internal_test.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
api_directive_test.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
api_test.go Stop using string keys in contexts 2022-11-04 15:01:40 -06:00
apimethod_string.go Drop the ingest subpackage and related endpoints. 2022-11-01 13:08:44 -05:00
apply.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
arrow.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
audit.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
audit_internal_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
audit_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
broadcast.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
bsi.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
bsi_test.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
cache.go comment cleanup 2022-05-27 11:25:17 -05:00
cache_test.go Periodically invalidate rank cache during bulk add 2022-02-15 08:25:45 -07:00
catcher.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
cluster.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
cluster_internal_test.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
cmd.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
CODE_OF_CONDUCT.md chore(community): adds code of conduct (#2195) 2022-08-17 12:30:22 -04:00
const_amd64.go add copyright notice back in 2021-12-10 11:01:04 -06:00
const_other.go add copyright notice back in 2021-12-10 11:01:04 -06:00
context.go Stop using string keys in contexts 2022-11-04 15:01:40 -06:00
dataframe_test.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
dbshard.go staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
dbshard_internal_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
dbshard_test.go refactor testing to share clusters more often 2022-09-02 11:40:37 -05:00
delete_test.go refactor testing to share clusters more often 2022-09-02 11:40:37 -05:00
diagnostics.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
diagnostics_internal_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
doc.go add copyright notice back in 2021-12-10 11:01:04 -06:00
Dockerfile Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
Dockerfile-clustertests Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
Dockerfile-clustertests-client Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
Dockerfile-datagen Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
Dockerfile-dax Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
Dockerfile-dax-quick Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
et_test.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
event.go simplify, streamline, and possibly debug embedded etcd 2022-07-21 11:42:35 -05:00
executor.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
executor_internal_test.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
executor_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
field.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
field_internal_test.go address multiple staticcheck issues 2022-09-23 16:56:27 -05:00
field_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
filesystem.go add copyright notice back in 2021-12-10 11:01:04 -06:00
fragment.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
fragment_internal_test.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
gc.go add copyright notice back in 2021-12-10 11:01:04 -06:00
gid.go database per shard, HolderConfig, rbf bit-wise import speedups. 2020-09-04 13:00:33 -05:00
go.mod Dataframe (#2241) 2022-11-21 17:38:48 -06:00
go.sum Dataframe (#2241) 2022-11-21 17:38:48 -06:00
hack.go Change Ttl to TTL (#2038) 2022-04-27 11:20:39 -05:00
handler.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
handler_test.go Drop the ingest subpackage and related endpoints. 2022-11-01 13:08:44 -05:00
holder.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
holder_internal_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
holder_test.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
http_handler.go Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
http_handler_internal_test.go drop ioutil 2022-09-23 16:56:27 -05:00
http_handler_test.go Drop the ingest subpackage and related endpoints. 2022-11-01 13:08:44 -05:00
http_translator.go drop ioutil 2022-09-23 16:56:27 -05:00
http_translator_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
idalloc.go change perms: 0666 -> 0600; 0777 -> 0750 2022-07-21 13:34:46 -05:00
idalloc_test.go change perms: 0666 -> 0600; 0777 -> 0750 2022-07-21 13:34:46 -05:00
index.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
index_internal_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
index_test.go fb-1729 Enriched Table Metadata (#2255) 2022-10-26 11:23:40 -05:00
interfaces.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
internal_client.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
internal_client_test.go Stop using string keys in contexts 2022-11-04 15:01:40 -06:00
iterator.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
iterator_internal_test.go add copyright notice back in 2021-12-10 11:01:04 -06:00
license.exceptions update license header check exceptions 2021-05-14 10:45:46 -04:00
like.go add copyright notice back in 2021-12-10 11:01:04 -06:00
like_test.go add copyright notice back in 2021-12-10 11:01:04 -06:00
main_test.go use testhook test cleanup 2022-09-26 12:33:43 -05:00
Makefile Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
metrics.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
nfpm.yaml Packaging improvements to improve mcloud updates (#2288) 2022-11-10 11:13:06 -08:00
NOTICE add config files for release 2021-11-19 01:26:18 +03:00
pilosa.go Remove most of the resize-related logic 2022-06-21 17:03:09 -05:00
pilosa_internal_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
pilosa_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
pprof.go remove a bunch of roaring backend stuff 2022-02-02 20:56:18 -06:00
rbf.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
README.md chore(community): adds code of conduct (#2195) 2022-08-17 12:30:22 -04:00
row.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
row_test.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
serializer.go add copyright notice back in 2021-12-10 11:01:04 -06:00
server.go Dataframe (#2241) 2022-11-21 17:38:48 -06:00
server_internal_test.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
server_test.go refactor testing to share clusters more often 2022-09-02 11:40:37 -05:00
sql_test.go Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00
stattx.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
time.go staticcheck fixes (#2278) 2022-11-07 10:51:55 -06:00
time_internal_test.go FB-1456 - TTL - fixed views not returning correct results (#2062) 2022-05-16 15:26:13 -05:00
tracker.go add copyright notice back in 2021-12-10 11:01:04 -06:00
tracker_test.go add copyright notice back in 2021-12-10 11:01:04 -06:00
transaction.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
transaction_test.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
translate.go Drop the ingest subpackage and related endpoints. 2022-11-01 13:08:44 -05:00
translator_test.go refactor testing to share clusters more often 2022-09-02 11:40:37 -05:00
tx.go drop anti-entropy feature, since it doesn't work 2022-11-04 14:08:23 -05:00
tx_internal_test.go significant refactor of test setup and teardown 2022-09-23 16:56:27 -05:00
tx_test.go use t.Fatal(f) to abort tests, not panic 2022-10-14 09:49:19 -05:00
txfactory.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
txfactory_internal_test.go remove a bunch of roaring backend stuff 2022-02-02 20:56:18 -06:00
util.go continue removing Tx parameters to view-type functions 2022-09-23 16:56:27 -05:00
util_test.go [FB-1024 FB-1590] Increase timerange (un-revert) (#2174) 2022-08-04 15:20:45 -07:00
utils_internal_test.go refactor testing to share clusters more often 2022-09-02 11:40:37 -05:00
version.go Upgrade go.mod to featurebase/v3 2022-01-21 10:57:05 -07:00
view.go significant refactor of test setup and teardown 2022-09-23 16:56:27 -05:00
view_internal_test.go significant refactor of test setup and teardown 2022-09-23 16:56:27 -05:00
wire_response.go Fix formatting in CLI results with custom SQLResonse.UnmarshalJSON (#2305) 2022-11-21 18:43:53 -06:00

FeatureBase, a distributed bitmap index

Contributor Covenant Coverage SecurityRating Quality Gate Status

See our internal documentation, which includes all external documentation, plus many internal-only pages, listed under the "Internal" heading in the main navigation bar.

Follow along with the Sample Project to get a better understanding of FeatureBase's capabilities.