- Add support
&&
and||
combination operation in filter (#54). - Fix compile warning negative steps are not supported in String.slice/2 in Elixir 1.16.3 (#55).
- Fix document warning
:groups_for_functions
is deprecated, please use:groups_for_docs
instead.
- Add create and delete operations to the predefined columns (#52).
- Fix compile error when use
filter
(#49).
- Add ValueTransferRule of SingleColumnValueFilter implemention (#38).
- Enhance SearchIndex implementions about virtual field, group by histogram, aggregation with percentiles/top rows (#39).
- Fix score sort of SearchIndex in runtime error (#40).
- Add SQL query implemention (#41).
- Enhance to simplify
condition
use (#43). - Fix to decode tunnel record
UPDATE_ROW
action with delete/delete_all attribute cols (#44, #47). - Fix to properly stop tunnel worker (#45).
- Add local transaction setting when create table. (#46).
- Fix compile error with Elixir 1.13.0
- Simplify dependency by removing
:timex
.
- Implement
analyzer_parameter
when use search index. - Remove uesless logger when generate next proper value in sequence.
- Add
ExAliyunOts.Search.range_query/1
to provide an intuitive experssion for use. - Update
ExAliyunOts.Search.range_query/2
to support use a range (in first..last format). - Simplify the internal config module.
- Fix compile deprecation warning about Bitwse ^^^ in Elixir 1.12.0 version.
- Make tunnel service usage sample and document more clear, see
ExAliyunOts.Tunnel.Worker
. - Rename
ExAliyunOts.Tunnel.Worker
'sstart/2
function asstart_connect/2
, this could resolve potential obscurity with GenServer function naming.
- Imporve further plainbuffer encoding(cover
crc_int32
andcrc_int64
) performance
- Enhance CRC module to imporve plainbuffer encoding performance
- Add
:is_atomic
option toExAliyunOts.batch_write/3
- Tweak document of
ExAliyunOts
module
- Make compatible to use :crypto mac
- Add
ExAliyunOts.stream_search/4
- Add
ExAliyunOts.iterate_search/4
- Fix compile warning when generate docs
- Fix Elixir 1.11 compilation warnings, explicitly add
Jason
into mix.exs deps
- Fix Elixir 1.11 compilation warnings
- Remove internal error logger print when occurs
OTSConditionCheckFail
,OTSObjectAlreadyExist
andOTSObjectNotExist
NOTICE: Since this version changes, when upgrade this library to 0.11.0
or higher version, if also use
ecto_tablestore
, please upgrade ecto_tablestore
to 0.8.0
or higher version.
- Use
protox
to replaceexportobuf
for google protobuf library, and maintain the generated modules in hexpm - Add retry for http request timeout
- Some implicit modules are removed and directly use the generated protobuf modules, cover:
- Use ExAliyunOts.TableStoreFilter.Filter(in
tablestore_protos
) to replaceExAliyunOts.Var.Filter
- Use ExAliyunOts.TableStoreFilter.SingleColumnValueFilter(in
tablestore_protos
) to replaceExAliyunOts.Var.SingleColumnValueFilter
- Use ExAliyunOts.TableStoreFilter.ColumnPaginationFilter(in
tablestore_protos
) to replaceExAliyunOts.Var.ColumnPaginationFilter
- Use ExAliyunOts.TableStore.Condition(in
tablestore_protos
) to replaceExAliyunOts.Var.Condition
- Use ExAliyunOts.TableStoreFilter.Filter(in
- Improve module file struct/naming
- Add
ExAliyunOts.create_index/6
to create global secondary indexes - Add
index_metas
anddefined_columns
optional options when useExAliyunOts.create_table/4
- Improve plainbuffer decoding performance
- [Http] Use Tesla with Finch adapter
- [Table] Add
ExAliyunOts.compute_split_points_by_size/3
- [Table] Fix
shard_splits
of DescribeTable response in proper decoded format - [SearchIndex] Add ParallelScan functions
- Implement standard api
ExAliyunOts.compute_splits/3
- Implement standard api
ExAliyunOts.parallel_scan/4
- Implement built-in functions
ExAliyunOts.iterate_parallel_scan/5
,ExAliyunOts.iterate_parallel_scan/7
andExAliyunOts.stream_parallel_scan/4
to make general use cases simple
- Implement standard api
- Enhance condition expression and simplify some code about it
-
Update
ExAliyunOts.filter/1
for a better usage (please notice that this change is incompatible update), before this version usesfilter
like this:filter( "name[ignore_if_missing: true, latest_version_only: true]" == var_name and "age" > 1 )
after this version uses
filter
like this, and then the column_name "name" can bind variable of the contextfilter( {"name", ignore_if_missing: true, latest_version_only: true} == var_name and "age" > 1 )
- Add
ExAliyunOts.stream_range/5
- Add index_sorts option when create search index
- Remove Mix in runtime
- Support filter expression column_name to bind variable of the context
- Enhance condition expression
- Tweak plainbuffer
- Downgrade hackney to 1.15.2