You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-- The `ApiFilter` constructor relies on the fact that
`Dimension::getFieldByName` throws an `IllegalArgumentException` to
perform validation. However, that is not documented on the `Dimension`
interface, which may lead implementors of `Dimension` to erroneously
assume that returning `null` is valid if a `DimensionField` is not found
(which is common for this kind of method). However, what actually
happens is that the `ApiFilter` is constructed with a `null` field,
leading to a `NullPointerException` at some point later.`
-- So the documentation on `Dimension` is updated to make that explicit.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+44-42Lines changed: 44 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
Change Log
2
2
==========
3
3
4
-
All notable changes to Fili will be documented here. Changes are accumulated as new paragraphs at the top of the current
4
+
All notable changes to Fili will be documented here. Changes are accumulated as new paragraphs at the top of the current
5
5
major version. Each change has a link to the pull request that makes the change and to the issue that triggered the
6
6
pull request if there was one.
7
7
@@ -10,18 +10,20 @@ Current
10
10
11
11
### Added:
12
12
13
+
-[Documentation that `Dimension::getFieldByName` should throw an `IllegalArgumentException` if there is no field with the passed in name](https://github.com/yahoo/fili/pull/547)
14
+
13
15
-[Evaluate format type from both URI and Accept header](https://github.com/yahoo/fili/pull/495)
14
16
* Add a new functional interface `ResponseFormatResolver` to coalesce Accept header format type and URI format type.
15
17
* Implement a concrete implementation of `ResponseFormatResolver` in `AbstractBindingFactory`.
16
-
18
+
17
19
-[Add Constructor and wither for TableApiRequest](https://github.com/yahoo/fili/pull/539)
18
-
* Making the TablesApiRequest similar to other ApiRequest classses so added an all argument constructor
19
-
and withers. The all argument constructor is made private since its used only by the withers.
20
-
20
+
* Making the TablesApiRequest similar to other ApiRequest classses so added an all argument constructor
21
+
and withers. The all argument constructor is made private since its used only by the withers.
22
+
21
23
-[Add Code Narc to validate Groovy style](https://github.com/yahoo/fili/pull/420)
22
24
* Checkstyle is great, but it doesn't process Groovy. Code Narc is Checkstyle for Groovy, so we should totally use
23
25
it.
24
-
26
+
25
27
-[Allow Webservice to Configure Metric Long Name](https://github.com/yahoo/fili/pull/492)
26
28
* Logical metric needs more config-richness to not just configure metric name, but also metric long name,
27
29
description, etc. MetricInstance is now created by accepting a LogicalMetricInfo which contains all these fields
@@ -40,10 +42,10 @@ Current
40
42
* Part of Fili translation in order to increase popularity of Fili in Chinese tech industries.
41
43
42
44
-[Add Uptime Status Metric](https://github.com/yahoo/fili/pull/518)
43
-
* Add a metric to show how long Fili has been running
45
+
* Add a metric to show how long Fili has been running
44
46
45
47
-[Add `druid_broker` config parameter to replace `ui_druid_broker` and `non_ui_druid_broker`](https://github.com/yahoo/fili/pull/489)
46
-
48
+
47
49
-[Have Tables Endpoint Support (but not use) Additional Query Parameters](https://github.com/yahoo/fili/pull/437)
48
50
* Make the availability consider the TablesApiRequest by passing it into the getLogicalTableFullView method
49
51
* Move auxiliary methods from `DataApiRequest` to `ApiRequest` in order to make them sharable between
@@ -87,7 +89,7 @@ Current
87
89
88
90
-[Rename filter variables and methods in DataApiRequest](https://github.com/yahoo/fili/pull/507)
89
91
* The method names `getFilter` and `getFilters` can be confusing, as well as the `filters` variable
90
-
92
+
91
93
-[Decoupled from static dimension lookup building]()
92
94
* Instead of `ModelUtils`, create an interface for `ExtractionFunctionDimension` and rebase `LookupDimension` and `RegisteredLookupDimension` on that interface.
93
95
*`LookupDimensionToDimensionSpec` now uses only the Extraction interface to decide how to serialize dimensions.
@@ -147,7 +149,7 @@ Current
147
149
148
150
-[Fix ConstantMaker make method with LogicalMetricInfo class](https://github.com/yahoo/fili/pull/540)
149
151
* The ConstantMaker make method needs to be rewritten with the LogicalMetricInfo class.
150
-
152
+
151
153
-[Slices endpoint returns druid name instead of api name](https://github.com/yahoo/fili/pull/491)
152
154
* The slices endpoint now gives the druid name instead of the api name for dimensions.
153
155
@@ -156,7 +158,7 @@ Current
156
158
classes results in `NullPointerException` and fails tests, because some instance variables from testing [`DataApiRequest`](./fili-core/src/main/java/com/yahoo/bard/webservice/web/DataApiRequest.java)
157
159
are null. This patch assigns non-null values to those variables.
158
160
* The testing constructor `DataApiRequestImpl()` is now deprecated and will be removed entirely.
159
-
161
+
160
162
-[Fix Lucene Cardinality in New KeyValueStores](https://github.com/yahoo/fili/pull/521)
161
163
* Fix lucene to put correct cardinality value to new key value store that does not contain the cardinality key
162
164
@@ -190,7 +192,7 @@ Current
190
192
* Reverting the PR-419(https://github.com/yahoo/fili/pull/419) so that the name still points to apiName and added factName which points to druidName.
191
193
`name` was not valid for cases when it is a Lookup dimension because it was pointing to the base dimension name , so reverted that change and added
192
194
`druidName` which is the actual druid fact name and `name` being the apiName
193
-
195
+
194
196
-[Remove custom immutable collections in favor of Guava](https://github.com/yahoo/fili/pull/479)
195
197
*`Utils.makeImmutable(...)` was misleading and uneeded so it has been removed. Use Guava's immutable collections.
196
198
@@ -431,7 +433,7 @@ Removals:
431
433
* Bound and default versions of getAvailableIntervals and getAllAvailableIntervals added to PhysicalTable interface
432
434
* Package-private optimize tests in `DruidQueryBuilder` moved to protected
433
435
* Immutable `NoVolatileIntervalsFunction` class made final
434
-
436
+
435
437
-[Moved UnionDataSource to support only single tables](https://github.com/yahoo/fili/pull/262)
436
438
*`UnionDataSource` now accepts only single tables instead of sets of tables.
437
439
*`DataSource` now supports `getDataSource()` operation
@@ -510,7 +512,7 @@ Removals:
510
512
*`TableLoader` now takes an additional constructor argument (`DataSourceMetadataService`) for creating tables
511
513
*`PartialDataHandler::findMissingRequestTimeGrainIntervals` now takes `DataSourceConstraint`
512
514
* Renamed `buildTableGroup` method to `buildDimensionSpanningTableGroup`
513
-
515
+
514
516
-[Restored flexibility about columns for query from DruidResponseParser](https://github.com/yahoo/fili/pull/198)
* Deprecated superfluous constructor of `FilteredAggregator` with superfluous argument
979
+
* Deprecated superfluous constructor of `FilteredAggregator` with superfluous argument
978
980
* Deprecated MetricMaker utility method in favor of using new field accessor on Metric
979
981
980
982
-[Deprecated MetricMaker.getDependentQuery lookup method in favor of simpler direct access](https://github.com/yahoo/fili/pull/124)
@@ -997,7 +999,7 @@ Changes:
997
999
* Discovered a bug where `user_roles` is declared but unset still reads as a list with empty string (included a temporary fix by commenting the variable declaration)
998
1000
* Refactored `RoleBasedAuthFilter` and `RoleBasedAuthFilterSpec` for better testing
999
1001
1000
-
-[Added missing coverage for `ThetaSketchEstimate` unwrapping in `MetricMaker.getSketchField`](https://github.com/yahoo/fili/pull/128)
1002
+
-[Added missing coverage for `ThetaSketchEstimate` unwrapping in `MetricMaker.getSketchField`](https://github.com/yahoo/fili/pull/128)
1001
1003
1002
1004
-[`DataSource::getNames` now returns Fili identifiers, not fact store identifiers](https://github.com/yahoo/fili/pull/125/files)
1003
1005
@@ -1009,7 +1011,7 @@ Changes:
1009
1011
1010
1012
### Removed:
1011
1013
1012
-
-[Removed invalid constructor from SketchRoundUpMappepr](https://github.com/yahoo/fili/pull/148)
1014
+
-[Removed invalid constructor from SketchRoundUpMappepr](https://github.com/yahoo/fili/pull/148)
1013
1015
1014
1016
1015
1017
v0.6.29 - 2016/11/16
@@ -1040,7 +1042,7 @@ New Capabilities & Enhancements:
1040
1042
1041
1043
-[Added Dimension Value implementation for PartitionTableDefinition]
1042
1044
* Added `DimensionIdFilter` implementation of `DataSourceFilter`
1043
-
* Created `DimensionListPartitionTableDefinition`
1045
+
* Created `DimensionListPartitionTableDefinition`
1044
1046
1045
1047
-[Added 'hasAnyRows' to SearchProvider interface](https://github.com/yahoo/fili/pull/259)
1046
1048
* Has Any Rows allows implementations to optimize queries which only need to identify existence of matches
@@ -1062,8 +1064,8 @@ New Capabilities & Enhancements:
1062
1064
* Slice availability can be used to debug availability issues on Physical tables
1063
1065
1064
1066
-[Ability to set headers for requests to Druid](https://github.com/yahoo/fili/pull/62)
1065
-
* The `AsyncDruidWebServiceImpl` now accepts a `Supplier<Map<String, String>>` argument which specifies the headers
1066
-
to add to the Druid data requests. This feature is made configurable through `SystemConfig` in the
1067
+
* The `AsyncDruidWebServiceImpl` now accepts a `Supplier<Map<String, String>>` argument which specifies the headers
1068
+
to add to the Druid data requests. This feature is made configurable through `SystemConfig` in the
1067
1069
`AbstractBinderFactory`.
1068
1070
1069
1071
### Changed:
@@ -1083,12 +1085,12 @@ New Capabilities & Enhancements:
1083
1085
* This change is made to allow running multi-api request with csv format using chrome browser.
1084
1086
1085
1087
-[Improves error messages when querying Druid goes wrong](https://github.com/yahoo/fili/pull/61)
1086
-
* The `ResponseException` now includes a message that prints the `ResponseException`'s internal state
1087
-
(i.e. the druid query and response code) using the error messages
1088
+
* The `ResponseException` now includes a message that prints the `ResponseException`'s internal state
1089
+
(i.e. the druid query and response code) using the error messages
1088
1090
`ErrorMessageFormat::FAILED_TO_SEND_QUERY_TO_DRUID` and `ErrorMessageFormat::ERROR_FROM_DRUID`
1089
-
* The druid query and status code, reason and response body are now logged at the error level in the
1090
-
failure and error callbacks in `AsyncDruidWebServiceImpl`
1091
-
1091
+
* The druid query and status code, reason and response body are now logged at the error level in the
1092
+
failure and error callbacks in `AsyncDruidWebServiceImpl`
1093
+
1092
1094
-[Fili now supports custom Druid query types](https://github.com/yahoo/fili/pull/57)
1093
1095
*`QueryType` has been turned into an interface, backed by an enum `DefaultQueryType`.
1094
1096
- The default implementations of `DruidResponseParser``DruidQueryBuilder`, `WeightEvaluationQuery` and
@@ -1115,9 +1117,9 @@ New Capabilities & Enhancements:
1115
1117
1116
1118
- Cleaned up dependencies in pom files
1117
1119
* Moved version management of dependencies up to the parent Pom's dependency management section
1118
-
* Cleaned up the parent Pom's dependency section to only be those dependencies that truly _every_ sub-project should
1120
+
* Cleaned up the parent Pom's dependency section to only be those dependencies that truly _every_ sub-project should
1119
1121
depend on.
1120
-
* Cleaned up sub-project Pom dependency sections to handle and better use the dependencies the parent Pom provides
1122
+
* Cleaned up sub-project Pom dependency sections to handle and better use the dependencies the parent Pom provides
1121
1123
1122
1124
### Deprecated:
1123
1125
@@ -1148,22 +1150,22 @@ New Capabilities & Enhancements:
1148
1150
1149
1151
-[Adds read locking to all attempts to read the Lucene index](https://github.com/yahoo/fili/pull/52)
1150
1152
* Before, if Fili attempted to read from the Lucene indices (i.e. processing a query with filters) while loading
1151
-
dimension indices, the request would fail and we would get a `LuceneIndexReaderAlreadyClosedException`. Now, the
1153
+
dimension indices, the request would fail and we would get a `LuceneIndexReaderAlreadyClosedException`. Now, the
1152
1154
read locks should ensure that the query processing will wait until indexing completes (and vice versa).
1153
1155
1154
1156
-[Fixes a bug where job metadata was being stored in the `ApiJobStore` even when the results came back synchronously](https://github.com/yahoo/fili/pull/49)
1155
-
* The workflow that updates the job's metadata with `success` was running even when the query was synchronous. That
1157
+
* The workflow that updates the job's metadata with `success` was running even when the query was synchronous. That
1156
1158
update also caused the ticket to be stored in the `ApiJobStore`.
1157
1159
* The delay operator didn't stop the "update" workflow from executing because it viewed an `Observable::onCompleted`
1158
-
call as a message for the purpose of the delay. Since the two observables that that the metadata update gated on
1160
+
call as a message for the purpose of the delay. Since the two observables that that the metadata update gated on
1159
1161
are empty when the query is synchronous, the "update metadata" workflow was being triggered every time.
1160
1162
* The delay operator was replaced by `zipWith` as a gating mechanism.
1161
-
1163
+
1162
1164
-[#45, removing sorting from weight check queries](https://github.com/yahoo/fili/pull/46)
1163
1165
1164
1166
-[`JsonSlurper` can now handle sorting lists with mixed-type entries](https://github.com/yahoo/fili/pull/58)
1165
1167
* even if the list starts with a string, number, or boolean
1166
-
1168
+
1167
1169
-[Broken segment metadata with Druid v0.9.1](https://github.com/yahoo/fili/issues/63)
1168
1170
* Made `NumberedShardSpec` ignore unexpected properties during deserialization
1169
1171
* Added tests to `DataSourceMetadataLoaderSpec` to test the v.0.9.1 optional field `shardSpec.partitionDimensions`
@@ -1182,7 +1184,7 @@ Jobs resource. Here are the highlights of what's in this release:
1182
1184
- Filtering and pagination on the Jobs resource
1183
1185
- A `userId` field for default Job resource representations
1184
1186
- Package cleanup for the jobs-related classes
1185
-
1187
+
1186
1188
### Added:
1187
1189
1188
1190
-[`always` keyword for the `asyncAfter` parameter now guarantees that a query will be asynchronous](https://github.com/yahoo/fili/pull/39)
@@ -1202,7 +1204,7 @@ Jobs resource. Here are the highlights of what's in this release:
0 commit comments