eKuiper 1.11.0
Features
This release focus on optimizing SQL and runtime.
SQL & Graph API
- feat: support for more low-priority array funcs by @wangxye in #1947
- feat: support single quote string literal by @Rui-Gan in #1974
- feat: support event time in continuous query by @ngjaying in #1975
- feat(function): add hex/int conversion functions by @L-607 in #2013
- feat(func): add merge_agg function by @ngjaying in #2016
- feat: support delay slidingWindow by @Yisaer in #2005
- feat: support slidingwindow condition by @Yisaer in #2008
- feat(func): add trigger related meta functions by @ngjaying in #2028
- feat: support meta func in window trigger cond by @ngjaying in #2038
- feat(func): support array_concat by @yai-dev in #1999
- feat: add extended wildcard by @Rui-Gan in #2041
- feat: use now as time parser by @xjasonlyu in #2057
- feat: support limit clause by @Yisaer in #2066
- feat: add
convert_tz
for timezone conversion by @xjasonlyu in #2069 - feat: implement string function of expr by @xuyukeviki in #2032
- feat(math): add common SQL math funcs/aliases by @xjasonlyu in #2082
- feat(math): support log func with base by @xjasonlyu in #2086
- feat(sql): add
to_seconds
function by @xjasonlyu in #2093 - feat: support ref alias in select by @Yisaer in #2101
- feat: add last_value function by @Rui-Gan in #2108
- feat: add bytea to CAST function by @Rui-Gan in #2128
- feat: support accmulative agg funcs by @Yisaer in #2125
- feat(func): add rule_start() by @ngjaying in #2143
- feat: support window function row_number by @Yisaer in #2140
- feat: add object_concat function by @Rui-Gan in #2149
- feat(sql): implement sql funcs for date and time by @yai-dev in #2172
- feat: support function array_sort by @hantmac in #2176
- feat(func): support func erase by @hantmac in #2179
Source & Sink
- feat: faster json decoding for streams with schema
- feat: file soure support enable parallel by @L-607 in #1948
- feat(httppull): refresh token on pulling by @xjasonlyu in #2018
- feat(source): httppull supports time range by @ngjaying in #2055
- feat(rest/sink): support token auto refreshing by @xjasonlyu in #2099
- feat: resend in separate queue
Operations
- feat: add historgrams metrics for latency by @Yisaer in #1990
- feat: add grafana panel by @Yisaer in #1995
- feat: explain clause internal
- feat: implement explain interface by @xuyukeviki in #1964
- feat: support time range for cron by @Yisaer in #2015
- feat: honor cpu limits in cgroups by @xjasonlyu in #2019
- feat: add timezone support by @xjasonlyu in #2064
- feat: export config path by @Yisaer in #2059
- feat(upload): support uploads export/import by @superrxan in #2104
- feat(restapi): support refresh basic configs by @xjasonlyu in #2117
- feat: support separate debug & logpath for rules by @xjasonlyu in #2138
- feat(restapi): support validate rule by @Rui-Gan in #2153
- feat(cli): support validating rules by @Rui-Gan in #2160
- feat: support long running schedule rule by @Yisaer in #2150
- feat(plugin): add update api by @ngjaying in #2161
Build & CI
- ci(topotest): fix plugin test failure by @xjasonlyu in #1934
- test: add ut for server by @Rui-Gan in #1942
- ci: optimize heavy ci check order by @xjasonlyu in #1950
- ci: fix check_licenses dependency by @xjasonlyu in #1953
- fix: pre-correct lint detected errors by @xjasonlyu in #1955
- ci(codecov): avoid needless ci failure by @xjasonlyu in #1959
- ci(lint): enable linter for multiple modules by @xjasonlyu in #1957
- ci(release): fail release with update errors by @xjasonlyu in #1968
- ci(docker/debian): upgrade debian to bullseye by @xjasonlyu in #1969
- chore: use stable apt-get cli by @xjasonlyu in #1970
- fix: add safe directory for build pkg by @xjasonlyu in #1977
- chore(deps): bump github.com/snowflakedb/gosnowflake from 1.6.18 to 1.6.19 in /extensions by @dependabot in #1987
- ci(lint): output format with line numbers by @xjasonlyu in #1986
- chore: update jmeter download location by @ngjaying in #2017
- chore(docker): bump dev go version to 1.20.2 by @xjasonlyu in #2021
- test: http test wait for http server to start by @huskar-t in #2033
- ci(lint/licenses): ignore unknown license types by @xjasonlyu in #2070
- chore: fix wasm edge version by @ngjaying in #2073
- ci(codecov): fix upload issue with explicit token by @xjasonlyu in #2087
- test: add hopping window test by @Yisaer in #2091
- chore: improve makefile for building kuiper cli by @xjasonlyu in #2141
Improvements
- refactor: remove deprecated properties by @xjasonlyu in #1937
- feat: add nil check for functions by @Yisaer in #1971
- perf: Avoid string copying during JSON parsing by @huskar-t in #2010
- refactor: use conf.Log for maxprocs.Set by @xjasonlyu in #2026
- perf: Reuse buffer during lexical analysis by @huskar-t in #2023
- perf: reduce data duplication by @huskar-t in #2050
- feat: optimize the limit processing by @Yisaer in #2084
- feat: extended wildcard follow up works by @Rui-Gan in #2085
- refactor: use
fmt.Fprintf
for response format by @xjasonlyu in #2126 - refactor(func): sharing array func by @ngjaying in #2124
- feat: support schedule rule terminated status by @Yisaer in #2127
- feat: extend
gcOutdatedLog
for all log files by @xjasonlyu in #2144 - feat: support validate window function in parser by @Yisaer in #2164
- chore: add log for rule checker by @Yisaer in #2186
Docs
- docs: add doc for how to check rule status by @Yisaer in #1935
- docs: add config key docs for rest api by @superrxan in #1941
- refactor(doc): reconstruct function doc by @ngjaying in #1949
- docs: update plugin tutorial for alpine by @Rui-Gan in #1951
- chore: fix readme typos by @xjasonlyu in #1958
- refactor(docs): structure change by @ngjaying in #1956
- docs: add docs for benefit of the defining schema by @Yisaer in #1961
- docs(tutorial): how to debug rules by @ngjaying in #1960
- docs: Modify the style of Markdown files by @huskar-t in #2001
- docs: add example for object funtion by @Yisaer in #2062
- docs: update cast datetime convention by @xjasonlyu in #2063
- docs: add time formats refer by @xjasonlyu in #2076
- docs: add extended wildcard docs by @Rui-Gan in #2077
- docs: add tzdata notice on alpine by @xjasonlyu in #2079
- docs: add docs for openvino by @superrxan in #2051
- docs(example): add merge_agg case by @ngjaying in #2096
- docs: add maintainers document by @Yisaer in #2088
- docs: add public data analysis example by @xjasonlyu in #2102
- docs(template): example ai prompt by @ngjaying in #2134
- docs(sql): add missing array funcs by @ngjaying in #2135
- docs: add sql example by @Yisaer in #2163
- docs: add roles and responsibilities by @ngjaying in #2155
Fixes & Other Changes
- fix(schema): pb schema support enum type by @ngjaying in #1963
- fix: let
startRule
rerun the rule by @Yisaer in #1967 - fix: fix walk function by @Rui-Gan in #1972
- fix(window): fix wrong first start time by @ngjaying in #1978
- fix: escape single quotes in single quotes by @Rui-Gan in #1981
- fix(doc): fix collect function example by @ngjaying in #1983
- fix(meta): update help url by @Patrick-Star125 in #1985
- fix: fix updateTopo for schedule rule by @Yisaer in #1982
- fix(window): align time based on unit by @ngjaying in #1984
- fix: fix oracle query with limit by @Yisaer in #1988
- docs: fix aggregate_functions link. by @huskar-t in #1991
- fix(doc): add stream format by @LenaLenaPan in #1994
- fix(doc): add missing heading by @LenaLenaPan in #1998
- fix(watermark): fix/refactor for continuous query by @ngjaying in #1997
- fix: rediskv get return by @shaiz98 in #2011
- fix: fix sort interface by @Rui-Gan in #2007
- fix(docs): revise writings by @LenaLenaPan in #2014
- chore: remove duplicate newline by @hotjuicew in #2022
- docs: duplicate ignoreCase annotation by @xjasonlyu in #2024
- fix(log): use
%v
to format interface{} value by @xjasonlyu in #2025 - fix: correctly concatenate ipv6 addr by @xjasonlyu in #2034
- fix(source): race-condition at httpserver by @levikobi in #2031
- fix(release): disable upx for non-linux platforms by @xjasonlyu in #2039
- fix: sliding window should trigger for each matched event by @Yisaer in #2037
- fix(schema): allow weak schema type by @ngjaying in #2043
- fix: support gc logs when started by @Yisaer in #2046
- docs: fix incomplete translation by @xjasonlyu in #2049
- docs: fix doc error by @Yisaer in #2048
- fix(doc): fix content and header problems by @ngjaying in #2056
- fix: let window Left-closed right-open by @Yisaer in #2053
- fix(sink): support none exist dir for file sink by @superrxan in #2061
- fix: wildcard contains alias by @Rui-Gan in #2060
- fix(docs): fix broken link by @Rui-Gan in #2068
- docs: fix doc error by @ke4nec in #2075
- fix: fix source processLatency in metrics by @Rui-Gan in #2067
- fix(doc): update dockerfile link by @ngjaying in #2080
- fix(docs): fix docs build error by @Swilder-M in #2081
- fix(source): always apply timestamp format by @ngjaying in #2095
- fix: exit process after an error occurs by @ke4nec in #2098
- fix(upload): support url for file upload (#23) by @superrxan in #2097
- fix(httppull): refresh token before header parsing by @xjasonlyu in #2100
- fix(plugin): add more log for tfLite plugin by @superrxan in #2103
- docs: Remove redundant space by @hi-rustin in #2105
- fix(cmd): add missing flag.Parse() call by @ke4nec in #2106
- fix: fix alias reference by @Yisaer in #2118
- fix: fix alias ref cycle check by @Yisaer in #2121
- fix: analyze funcs reference alias analyze by @Yisaer in #2113
- fix(graph): set schema id by name/message by @cea5 in #2116
- fix: make alias reference the same name column by @Yisaer in #2142
- docs: add pub data analysis to directory.json by @xjasonlyu in #2147
- fix: support start schedule rule in schedule by @Yisaer in #2145
- docs: fix image type to png by @xjasonlyu in #2152
- fix: avoid log override when update by @xjasonlyu in #2151
- fix: scan table join checkpoint by @ngjaying in #2154
- fix(file): checkInterval validation by @ngjaying in #2156
- fix(format): pb import and message array by @ngjaying in #2165
- fix(plugin): set working dir by @ngjaying in #2166
- fix: fix validate api status code by @Rui-Gan in #2168
- fix: accumulate word count function plugin by @levikobi in #2170
- fix(graph): support script node in agg by @ngjaying in #2173
- fix: parse time should consider loc by @Yisaer in #2169
- chore: update create stream/table error message by @fatelei in #2174
- fix: fix cmd config by @Yisaer in #2181
- fix: fix alias cycle reference by @Yisaer in #2184
- fix: fix acc agg function for invalid data by @Yisaer in #2182
- fix: time function should consider timezone by @Yisaer in #2183
- fix(sink): hang when cache priority set by @ngjaying in #2185
- fix(func): array_sort works for arr by @ngjaying in #2187
- fix(func): array_shuffle should clone by @ngjaying in #2188
- fix(func): array_join support more types by @ngjaying in #2189
- fix(func): array distinct ignore un-hashable by @ngjaying in #2190
- fix(func): array_flatten tolerate single value by @ngjaying in #2192
- fix(func): object concat should ignore nil by @ngjaying in #2193
- fix: revise grafana panel by @Yisaer in #2191
- fix(test): fix obj test random error by @ngjaying in #2194
- fix: fix schedule rule state by @Yisaer in #2196
- fix(sink): sink cache resend and metrics issue by @ngjaying in #2198
- fix: fix start long runing schedule rule state by @Yisaer in #2199
Breaking Changes
Deprecate properties are removed
- Sink property
runAysnc
- File sink property
interval
, usecheckInterval
instead
New Contributors
- @L-607 made their first contribution in #1948
- @Patrick-Star125 made their first contribution in #1985
- @huskar-t made their first contribution in #1991
- @xuyukeviki made their first contribution in #1964
- @shaiz98 made their first contribution in #2011
- @hotjuicew made their first contribution in #2022
- @levikobi made their first contribution in #2031
- @yai-dev made their first contribution in #1999
- @ke4nec made their first contribution in #2075
- @hi-rustin made their first contribution in #2105
- @cea5 made their first contribution in #2116
- @fatelei made their first contribution in #2174
- @hantmac made their first contribution in #2176
Full Changelog: 1.10.0...1.11.0