@@ -28,16 +28,196 @@ For a full list of releases, see
28
28
Downloads are available on the
29
29
[ downloads page] ({{ site.baseurl }}/downloads/).
30
30
31
- ## <a href =" https://github.com/apache/calcite/releases/tag/calcite-1.26.0 " >1.26.0</a > / 2020-xx-xx
31
+ ## <a href =" https://github.com/apache/calcite/releases/tag/calcite-1.26.0 " >1.26.0</a > / 2020-10-03
32
32
{: #v1-26-0}
33
33
34
- Under development.
34
+ This release comes about two months after [ 1.25.0] ( #v1-25-0 ) . It includes more than 70 resolved
35
+ issues, comprising a lot of new features and bug-fixes. Among others, it is worth highlighting the following.
35
36
36
- Compatibility: This release is tested on Linux, MacOS, Microsoft Windows;
37
+ * [ SEARCH operator and Sarg literal] ( https://issues.apache.org/jira/browse/CALCITE-4173 )
38
+ * [ PIVOT operator in SQL] ( https://issues.apache.org/jira/browse/CALCITE-3752 )
39
+ * [ Spatial index based on Hilbert space-filling curve] ( https://issues.apache.org/jira/browse/CALCITE-1861 )
40
+ * [ Provide utility to visualize RelNode] ( https://issues.apache.org/jira/browse/CALCITE-4197 )
41
+ * [ Support JDK 15 and Guava version 29.0-jre] ( https://issues.apache.org/jira/browse/CALCITE-4259 )
42
+
43
+ Compatibility: This release is tested on Linux, macOS, Microsoft Windows;
37
44
using JDK/OpenJDK versions 8 to 15;
38
45
Guava versions 19.0 to 29.0-jre;
39
46
other software versions as specified in gradle.properties.
40
47
48
+ #### Breaking Changes
49
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-2082 " >CALCITE-2082</a >]
50
+ Do not store types or type factories inside operators
51
+
52
+ #### New features
53
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4173 " >CALCITE-4173</a >]
54
+ Add internal ` SEARCH ` operator and ` Sarg ` literal that represents a set of values or ranges
55
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-3752 " >CALCITE-3752</a >]
56
+ Add ` PIVOT ` operator to SQL
57
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-1861 " >CALCITE-1861</a >]
58
+ Spatial index, based on Hilbert space-filling curve
59
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-3920 " >CALCITE-3920</a >]
60
+ Improve ` ORDER BY ` computation in Enumerable convention by exploiting ` LIMIT ` (Thomas Rebele)
61
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4015 " >CALCITE-4015</a >]
62
+ Pass through parent collation request on subset or superset of join keys for ` EnumerableMergeJoin `
63
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-3782 " >CALCITE-3782</a >]
64
+ Bitwise functions ` BIT_AND ` , ` BIT_OR ` and ` BIT_XOR ` support binary and varbinary type (Hailong Wang)
65
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4197 " >CALCITE-4197</a >]
66
+ Provide utility to visualize ` RelNode ` plans (Liya Fan)
67
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4113 " >CALCITE-4113</a >]
68
+ Support ` LEFT JOIN ` in ` EnumerableMergeJoin `
69
+
70
+ #### Bug fixes, API changes and minor enhancements
71
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-2833 " >CALCITE-2833</a >]
72
+ In JDBC adapter for Hive and BigQuery, implement ` Values ` by generating ` SELECT ` without ` FROM ` (Stuti Gupta)
73
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4160 " >CALCITE-4160</a >]
74
+ Add configuration (` SqlToRelConverter.Config ` ) to retain ` ORDER BY ` in sub-query (Jiatao Tao)
75
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-3399 " >CALCITE-3399</a >]
76
+ Field-pruning for set operators (except ` UNION ALL ` ) changes query semantics (Jin Xing)
77
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4182 " >CALCITE-4182</a >]
78
+ Support materialized view recognition when query has constant filter for missing columns in ` GROUP BY ` list of materialized view (Wang Yanlin)
79
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4171 " >CALCITE-4171</a >]
80
+ Support named parameters for table window functions
81
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4167 " >CALCITE-4167</a >]
82
+ Group by ` COALESCE IN ` throws ` NullPointerException `
83
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4172 " >CALCITE-4172</a >]
84
+ Expand columnar identifiers before resolving (James Starr)
85
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4180 " >CALCITE-4180</a >]
86
+ Support for Elasticsearch basic authentication (fageiguanbing)
87
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4241 " >CALCITE-4241</a >]
88
+ Some improvements to metadata query
89
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4170 " >CALCITE-4170</a >]
90
+ Improve simplification of ` <> ` predicates
91
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4159 " >CALCITE-4159</a >]
92
+ Simplify always-true expressions (such as ` LIKE '%' ` ) to ` TRUE `
93
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4192 " >CALCITE-4192</a >]
94
+ ` RelMdColumnOrigins ` gets the wrong index of group by columns after ` RelNode ` was optimized by ` AggregateProjectMergeRule ` rule (FangZheng Li)
95
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4203 " >CALCITE-4203</a >]
96
+ ` RelMdUniqueKeys ` should not return empty when meeting ` Intersect ` and ` Minus ` if its input has unique keys
97
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4207 " >CALCITE-4207</a >]
98
+ Validation fails for positional aggregate with ` CURRENT_DATE ` in ` CASE ` expression
99
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4206 " >CALCITE-4206</a >]
100
+ ` RelDecorrelator ` outputs wrong plan for correlate sort with fetch limit
101
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4209 " >CALCITE-4209</a >]
102
+ In ` RelBuilder ` , add an option to not simplify ` LIMIT 0 ` to an empty relation
103
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4208 " >CALCITE-4208</a >]
104
+ Improve metadata row count for ` Join `
105
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4210 " >CALCITE-4210</a >]
106
+ Replaying subqueries in ` ON ` clauses (James Starr)
107
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4214 " >CALCITE-4214</a >]
108
+ Make ` RelDataType.getSqlTypeName ` non-nullable
109
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4217 " >CALCITE-4217</a >]
110
+ Unlock ` RelCrossType#getFieldCount() `
111
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4220 " >CALCITE-4220</a >]
112
+ In ` SqlToRelConverter ` , use ` RelBuilder ` for creating ` Aggregate `
113
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4226 " >CALCITE-4226</a >]
114
+ Add ` Mappings#asListNonNull ` as a null-safe alternative for ` Mappings#asList `
115
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4237 " >CALCITE-4237</a >]
116
+ ` AssertionError ` in ` SqlTypeFactoryImpl.leastRestrictive ` when running slow tests
117
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4254 " >CALCITE-4254</a >]
118
+ ` ImmutableBeans ` should make an immutable copy of property values of type ` List ` , ` Set ` , or ` Map `
119
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4249 " >CALCITE-4249</a >]
120
+ JDBC adapter cannot translate ` NOT LIKE ` in join condition
121
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4266 " >CALCITE-4266</a >]
122
+ JDBC adapter throws ` UnsupportedOperationException ` if query contains range predicate on columns from sub-query
123
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4176 " >CALCITE-4176</a >]
124
+ Key descriptor can be optional in ` SESSION ` table function
125
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4279 " >CALCITE-4279</a >]
126
+ ` SEARCH ` operator cannot be pushed into Druid
127
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4280 " >CALCITE-4280</a >]
128
+ Replace Guava's ` Lists.transform ` and ` Iterables.transform ` with ` Util.transform `
129
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4282 " >CALCITE-4282</a >]
130
+ Promote the window table functions window attribute data type with precision 3
131
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4287 " >CALCITE-4287</a >]
132
+ ` AggregateJoinRemoveRule ` and ` ProjectJoinRemoveRule ` are not fired if the last column of the join's left input is referenced (Liya Fan)
133
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4238 " >CALCITE-4238</a >]
134
+ Create a default parser configuration, to reduce redundant information in sub-parsers
135
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4289 " >CALCITE-4289</a >]
136
+ Wrong signature for ` SqlTumbleTableFunction `
137
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4295 " >CALCITE-4295</a >]
138
+ Composite of two checkers with ` SqlOperandCountRange ` throws ` IllegalArgumentException ` (Zhenghua Gao)
139
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4190 " >CALCITE-4190</a >]
140
+ ` OR ` simplification incorrectly loses term
141
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4195 " >CALCITE-4195</a >]
142
+ Cast between types with different collators must be evaluated as not monotonic
143
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4200 " >CALCITE-4200</a >]
144
+ ` ExceptionInInitializerError ` when initializing DruidRules
145
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4201 " >CALCITE-4201</a >]
146
+ ` AssertionError ` when registering Druid rules due to conflict in description
147
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4221 " >CALCITE-4221</a >]
148
+ Update stale integration tests in Druid adapter
149
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4239 " >CALCITE-4239</a >]
150
+ ` RelMdUniqueKeys ` returns wrong unique keys for ` Aggregate ` with grouping sets
151
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4271 " >CALCITE-4271</a >]
152
+ ` RelBuilder.in ` should allow duplicate values
153
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4258 " >CALCITE-4258</a >]
154
+ ` SqlToRelConverter ` : ` SELECT 1 IS DISTINCT FROM NULL ` fails with ` AssertionError `
155
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4246 " >CALCITE-4246</a >]
156
+ When parsing SQL in BigQuery dialect, allow unquoted table names to contain hyphens
157
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4230 " >CALCITE-4230</a >]
158
+ When parsing SQL in BigQuery dialect, split quoted table names that contain dots
159
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4247 " >CALCITE-4247</a >]
160
+ When parsing SQL in BigQuery dialect, character literals may be enclosed in single- or double-quotes, and use backslashes as escapes
161
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4215 " >CALCITE-4215</a >]
162
+ Ensure ` org.apache.calcite.schema.Statistic ` uses ` null ` vs ` emptyList ` appropriately
163
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4227 " >CALCITE-4227</a >]
164
+ ` ImmutableIntList#toArray(Integer[]) ` should support arguments larger than the collection itself
165
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4228 " >CALCITE-4228</a >]
166
+ ` FlatLists.Flat6List#append ` should not throw NPE if there are null elements in the list
167
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4229 " >CALCITE-4229</a >]
168
+ ` Add Util.throwAsRuntime ` and ` Util.causeOrSelf ` to simplify exception re-throwing
169
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4269 " >CALCITE-4269</a >]
170
+ Improvement on enumerable implementation for ` HOP ` and ` SESSION `
171
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4275 " >CALCITE-4275</a >]
172
+ ` EnumerableMergeJoin#create ` does not set ` EnumerableConvention ` in the trait set
173
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4283 " >CALCITE-4283</a >]
174
+ Do not force implement ` SqlTableFunction ` when creating table function scan
175
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4261 " >CALCITE-4261</a >]
176
+ Join with three tables causes ` IllegalArgumentException ` in ` EnumerableBatchNestedLoopJoinRule `
177
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4288 " >CALCITE-4288</a >]
178
+ Create ` SqlTypeUtil#deriveType(SqlCallBinding) ` to make type computation simpler
179
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4216 " >CALCITE-4216</a >]
180
+ Make ` org.apache.calcite.rel.type.RelDataType#getFamily ` non-nullable
181
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4298 " >CALCITE-4298</a >]
182
+ Avoid disabling hostname verification on HTTPS connections
183
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4300 " >CALCITE-4300</a >]
184
+ ` EnumerableBatchNestedLoopJoin ` dynamic code generation can lead to variable name issues if two EBNLJ are nested
185
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4224 " >CALCITE-4224</a >]
186
+ Add a method for ` RelNode ` to output its relational expression string (Jiatao Tao)
187
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4248 " >CALCITE-4248</a >]
188
+ Deprecate ` SqlParser.ConfigBuilder `
189
+ * Remove ` ArrayList ` allocation from ` Mappings#bijection ` , and add helpful message in case NPE is thrown
190
+ * Improve positions in SQL validator error messages
191
+ * Simplify ` Pair.left(Iterable) ` and ` Pair.right(Iterable) ` implementation
192
+ * Refactor ` Pair ` comparison to use ` Comparator.nullsFirst ` and ` .naturalOrder `
193
+ * Obsolete ` SqlToRelConverter.ConfigBuilder ` , and refactor ` SqlToRelConverterTest `
194
+ * Refactor ` SqlParserTest `
195
+ * Minor refactoring of ` DruidAdapterIT ` and ` DruidAdapter2IT `
196
+
197
+ #### Build and test suite
198
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4278 " >CALCITE-4278</a >]
199
+ Add Druid adapter tests in GitHub CI
200
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4259 " >CALCITE-4259</a >]
201
+ Support JDK 15 and Guava version 29.0-jre
202
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4184 " >CALCITE-4184</a >]
203
+ Update Gradle: 6.3 -> 6.6
204
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4168 " >CALCITE-4168</a >]
205
+ Configure Gradle Local Build Cache
206
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-4185 " >CALCITE-4185</a >]
207
+ Remove dependency between checkstyle and compilation tasks
208
+ * Add ` MaxMetaspaceSize=512m ` to avoid metaspace issues when building Calcite
209
+ * Make project buildable from folders that include special characters
210
+ * Use ` merge=union ` strategy to avoid false merge conflicts on ` CalciteResource.properties `
211
+ * Add GC options to GitHub and Travis CI so they fail on low memory condition faster
212
+ * Update Checkstyle from 8.27 to 8.28 to support ` package-info ` files with imports
213
+ * Update ` org.nosphere.apache.rat ` plugin from 0.5.2 to 0.7.0, and print files with unapproved licenses to console
214
+
215
+ #### Web site and documentation
216
+ * [ <a href =" https://issues.apache.org/jira/browse/CALCITE-3841 " >CALCITE-3841</a >]
217
+ Change downloads page to use downloads.apache.org
218
+ * Fix documentation errors
219
+ * Site: Add Rui Wang as committer, Ruben Quesada Lopez as PMC
220
+
41
221
## <a href =" https://github.com/apache/calcite/releases/tag/calcite-1.25.0 " >1.25.0</a > / 2020-08-08
42
222
{: #v1-25-0}
43
223
@@ -51,7 +231,7 @@ make sure to consult corresponding section. Notable improvements in this release
51
231
* [ Refactor How Planner Rules are Parameterized] ( https://issues.apache.org/jira/browse/CALCITE-3923 )
52
232
* [ Spacial Functions] ( https://issues.apache.org/jira/browse/CALCITE-2160 )
53
233
54
- Compatibility: This release is tested on Linux, MacOS , Microsoft Windows;
234
+ Compatibility: This release is tested on Linux, macOS , Microsoft Windows;
55
235
using Oracle JDK 8, 9, 10, 11, 12, 13, 14 and OpenJDK 8, 9, 10, 11, 12, 13, 14;
56
236
Guava versions 19.0 to 28.2-jre; other software versions as specified in
57
237
gradle.properties.
0 commit comments