- Added
min()andmax()functions, issue #441.
- Added
--auto-rebuildflag, pr #435. - Fixed: garbage collect in single node mode, issue #438.
- Added type index for fast
type_all(..)requests, pr #439. - Added
WPO,HIDandIDXtype flags, pr #440.
- Added the
America/Coyhaiquetime zone, pr #432. - Optimize
del_historytask (use single loop), pr #433. - Fixed setting
MHTflag after usingmap_type(), issue #434.
- Allow converting
mpdatatobytes, issue #427. - Fixed: map cache for nested structure not cleared, issue #428.
- Add global
enumdefinition, issue #429. - Add anonymous wrap only type syntax (
&{..}), pr #430. - Added
ano()function, pr #430. - Definition
*strnow exposes enumerator keys, issue #431.
- Implemented formatting C-string checks and fixed typo, pr #426.
- Added
TI_PROTO_CLIENT_REQ_EMIT_PEERprotocol, pr #414. - Changed
copy()behavior for wrapped type, pr #415. - Fixed missing wrap-prefix flags after renaming type, issue #416.
- Allow defining nested structure in wrap type, pr #417.
- Self-reference within a wrap-only type is no longer required to be nillable, issue #418.
- Fixed missing
hide_idflag in export, pr #419. - Include export enumerator members of type
thing, pr #420. - Fixed missing "ID" (
#) field in export, issue #421. - Added
type_all()function, pr #422. - Fixed handling non-stored thing with
to_type(), issue #424. - Added commit history with new functions, pr #425 and discussion #423.
commit(): https://docs.thingsdb.io/v1/collection-api/commit/history(): https://docs.thingsdb.io/v1/thingsdb-api/history/set_history(): https://docs.thingsdb.io/v1/thingsdb-api/set_history/del_history(): https://docs.thingsdb.io/v1/thingsdb-api/del_history/
- Fixed maximum enumerators per collection, issue #412.
- Added
!prefix flag to exclude values which evaluate tofalse, pr #413.
- Added
match()function and global (g) flag for regular expressions, pr #409. - Added
?prefix flag to excludenilvalues, pr #411.
- Added
bit_count()function, pr #405. - Allow
return;statement without arguments (implicitly return nil), pr #404. - Function
nse();should not error when a side-effect outside nse() is enforced, pr #406. - Improve error message when wrong action in
mod_type(), issue #407.
- Improve destroy websocket when unexpected disconnect.
- Fix in recursive
for-eachloop.
- Fix writing large packages over websockets, pr #403 (reported by @ivomans).
- Use smaller fragments when writing WebSocket data, pr #400 (@ivomans).
- Pin gcloud image as gsutil is not working in latest (gcloud build only).
- Add default boolean syntax to allow a default
truevalue, pr #402.
- Fix incorrect value error when user or token is not found, pr #390 (@rickmoonex).
- Implement optional name for a room, pr #393.
- Use MessagePack Extension to internally store names, issue #394.
- Added whitelist support for both "procedures" and "rooms", pr #395.
- Added option for a default enumerator member in a type definition, pr #396.
- New functions:
whitelist_add(): https://docs.thingsdb.io/v1/thingsdb-api/whitelist_add/whitelist_del(): https://docs.thingsdb.io/v1/thingsdb-api/whitelist_del/room.set_name(): https://docs.thingsdb.io/v1/data-types/room/set_name/
- Allow
user_info()in a collection scope, discussion #385.
- Fixed bug in debug logging when
task.del()is called with an error, issue #384.
- Fixed using
task.del()within the task callback, issue #383.
- Honor key restrictions with JSON load function, issue #382.
- Fixed loading JSON strings with
json_load()function, issue #381.
- Add support for ARM64 container, pr #377 (@rickmoonex).
- Both the minimal and full docker builds compatible with legacy hardware, pr #380 (@rickmoonex).
- Listen to
THINGSDB_INIT,THINGSDB_SECRETandTHINGSDB_DEPLOYenvironment variable. - Added
tls.Dockerfilefor TLS/SSL support in docker container. - Fixed logging from forward request with API.
- Added optional WebSocket (including TLS/SSL) support.
- Changed build system to
cmakeand added build scripts:- Release build:
./release-build.sh - Debug build:
./debug-build.sh
- Release build:
- Restrict future arguments for
then()orelse()to objects without an Id. - Module as type, no longer the workaround of exposing modules as futures, pr #365.
- Added the
is_module()function, pr #365. - Support ThingsDB code in exposed module functions, pr #365.
- Added support for building on MacOS.
- Fixed spelling mistake in error message.
- Comments can now be placed anywhere where white-space is allowed.
- Comments are no longer stored within closures. This behavior was previously partially enforced, and now it is strictly followed.
- Statements must be separated with semicolons. Syntax checking is now more strict.
- Removed syntax option for selecting a collection scope by Id.
- The collection Id and collection root Id no longer need to be equal.
- Added
next_free_idfield to collection info and removed from nodes info. (The response fornode_info()still contains thenext_free_idfor the global free Id) - Added
dumpoption to theexport(..)function for a full collection export. - Added function
import()which can import a collection export dump. - Added function
root()for getting the collection root as thing. - Function
export(..)can no longer be used in queries with changes. - A bug with adding enumerators to restricted lists has been fixed.
- A bug with applying a new relation to existing data has been fixed.
- A bug with async future error reporting has been fixed.
- A bug with clearing nesting tasks through arguments has been fixed.
- Tasks owners must be set to owners with equal or less access flags.
- The
change._tasksstructure in C code has been renamed. (This has no impact on user-facing functionality) - Replaced Docker images (both tests and builds) with newer versions.
- Removed
ti_pkg_checkhack for old compilers. (this is no longer required with recent compilers) - Added integer minimum
INT_MINand maximumINT_MAXconstants with corresponding values. - The primary domain for the ThingsDB website has been changed from
.netto.io. - Several new mathematical functions have been added:
abs(..),ceil(..),cos(..),exp()..,floor(..),log10(..),log2(..),loge(..),pow(..),round(..),sin(..),sqrt(..)andtan(..). - Added mathematical constants
MATH_EandMATH_PIwith corresponding values. - The library
libcleriis now integrated into the core ThingsDB code base, eliminating the need for separate installation. - The
new_backup()andnew_token()functions no longer acceptint,floatorstras time. (This was marked as deprecated since v0.10.1) - Added set operators
<=,<,>=,>for subset, proper subset, super-set and proper super-set checking. - Added range
<..>support for UTF-8 type property definitions. - Added bit-wise NOT (
~) operator. - Added bit-wise Left (
<<) and Right (>>) shifting operators. - Return
nilinstead of success error when a repeating task is successful. - Corrected a spelling mistake in error message for integer range values.
- No longer allow a relation between a none-stored set and a none-stored value.
- Removed the
<and>from returning a room to a client to be consistent. - Allow explicit variable list for empty future using a direct closure.
- Return value of
mod_procedure(..)has changed tonilon success. - Enforce
argmapproperty for exposed module methods. - Prevent adding a duplicated node (based on address and port).
- No shutdown wait time for uninitialized nodes.
- New user and new collection return the name, not the ID.
- Ignore empty collections on restore for better user experience.
- Increase range maximum from
9999to100000. - Increase maximum future closure calls from
8to255.
- Improve
dup()andcopy()with self references, pr #355.
- Added support for methods on an enumerator type, pr #352.
- Added function
count(..), pr #353 and #354. - Added function
sum(..), pr #354.
- Fixed bug with using function
wrap(..)in module argument, issue #351.
- Added function
mod_procedure(..), pr #348. - Added function
flat(..), pr #349. - Fixed enumerator lookup in wrong scope, issue #350.
- Added
timeit(..)function, issue #345. - Added type definitions:
email,urlandtel, issue #346. - Added corresponding functions:
is_email(..): Determine if a given value is an email address.is_url(..): Determine if a given value is a URL.is_tel(..): Determine if a given value is a telephone number.
- Fixed bug with computed methods, issue #343.
- Fixed bug with enumerator member to string conversion, issue #344.
- Fixed daylight saving times bug in
move(..)function, issue #342.
- Added
backups_ok()function for the node scope, issue #341.
- Fixed bug with
move(..)function with timezone information, issue #340.
- Added timezone Europe/Kyiv for the correct spelling, Fuck ruZZia.
- Fixed Docker builds to include timezone data.
- Implemented optional chaining (double dot,
..) syntax, issue #339. - Implemented type definition
task, issue #336. - Implemented enumerator member flag
*, issue #338.
- Fixed bug with recursion in computed properties, issue #332.
- Added
nse(..)function, pr #333. - Fixed bug with short syntax in closure, issue #334.
- Fixed minor bug with assertion test (debug mode only), issue #329.
- Fixed trivial bug with deep level in computed properties, issue #331.
- Added shutdown-period configuration option, issue #324.
- Added authentication mask
USER, issue #325. - Add
id()to wrapped type and updatemap_id()function, issue #327.
- Added
fill(..)function, issue #320. - Allow away mode (blocking) on a single node, issue #321.
- Increase
range(..)limitation, issue #322.
- Return same instance on type match, issue #315.
- Added
ren(..)function, issue #316. - Added
enum_map(..)function, issue #318.
- Fixed mismatch in refcount, issue #309.
- Fixed bug with relations between things without Id, issue #308.
- Improve performance, pr #313.
- Fixed bug with nested tuples after copy or duplicate, issue #314.
- Definition must follow flags, issue #306.
- API request might free collection name before reading, issue #307.
- Improve performance when looping over sets with relations, pr #303.
- Add option to hide an Id for a Type, pr #304.
- Added additional prefix flags (
-,+and^), pr #305.
- Fixed potential memory bug with relations, issue #302.
- Removed deprecated functions
return(..)andif(..), pr #297. - Added Id (
'#') definition for Id mapping on typed things, issue #296. - Added map shortcut functions, issue #298.
- list.
map_id(): https://docs.thingsdb.net/v1/data-types/list/map_id - list.
map_wrap(..): https://docs.thingsdb.net/v1/data-types/list/map_wrap - list.
map_type(..): https://docs.thingsdb.net/v1/data-types/list/map_type - set.
map_id(): https://docs.thingsdb.net/v1/data-types/set/map_id - set.
map_wrap(..): https://docs.thingsdb.net/v1/data-types/set/map_wrap
- list.
- Changed the default deep value back to
1(one), issue #300. - Allow
&to prefix a definition for the same deep level when wrapping a thing, issue #301.
- Fixed rename type when used with restricted things, issue #292.
- Added
enumandunionas reserved names, issue #294. - Support
NO_IDSflag on return statement, issue #293.
- Fixed gcloud backup return message when failed, issue #288.
- Added
one()function, pr #290. - Fixed potential memory leak with keys, issue #291.
- Reduce indentation from four spaces to a single
TAB, issue #284. - Implement short syntax for init thing or instance, issue #283.
- Added
vmap(..)function, issue #286.
- Fixed using
log(..)within a future, issue #282.
- Use
/dev/urandomfor a seed to initialize random, issue #280. - Added
search(..)function for debugging purpose, issue #281.
- Fixed restriction mismatch after type removal, issue #277.
- Added
to_thing()function, issue #278.
- Added
closure(..)function to create closures from string, issue #273. - Fixed task replication bug in
set_closure(..)function, issue #274. - Fixed task replication bug in
set_owner(..)function, issue #275. - Added the option to
restore_tasksexplicitly at restore, issue #246.
- Fixed storing migration change for non-collection scopes, issue #269.
- Deny revoking your own
QUERYprivileges to prevent lockout, issue #270. - Fixed evaluation from left-to-right, issue #271.
- Switch from common- to all- time-zones, issue #267.
- Fixed allocation bug in reverse buffer, issue #253.
- Added
if..elseas statement (markedif()as deprecated), issue #254. - Added
returnas statement (markedreturn()as deprecated), issue #255. - Added
for..inwithbreakandcontinuestatements, issue #257. - Fixed memory leak with re-assigning closure variable, issue #259.
- Upgrade to libcleri v1.0.0, issue #263.
- Configurable
deepvalue per scope and changed defaults, issue #261. - Set time zone per scope instead of collection only, issue #260.
- Syntax changes, pr #264.
- Added
dup(..)andcopy(..)to set, list and tuple type, issue #265.
- Added
is_time_zone(..)function, issue #247. - Fixed task scheduling when restoring from file, issue #248.
- Prevent restore when tasks are created in the
@thingsdbscope, issue #249. - Added support for slice and index notation on bytes, issue #251.
- Fixed bug with slice and index notation on internal names, issue #252.
- Remove scope restriction from
time_zones_info()function, issue #236. - Function
deep(..)can now be used to set the deep value, issue #237. - Remove the deprecated hash (
#..) syntax, issue #232. - Added
allaction to themod_type(..)function, issue #235. - Fixed unexpected behavior with unassigned typed things, issue #239.
- Added
restrict(..)function and restrictions on non-typed things, issue #210. - Added
restriction()function, issue #240. - Fixed bug with deploying static module files, issue #241.
- Fixed memory leak when deleting a locked value from a (dict) thing, issue #242.
- Fixed generating Id for wrapped thing in list, issue #243.
- Added optional limit argument to
set().remove(..), issue #244. - Added
remove()function for non-typed things, issue #245.
- Replace
timerswithtasks, pr #230. - Fixed bug in checking arguments for scheduled tasks, issue #225.
- Fixed bug with updating properties in different threads, issue #226.
- Fixed bug with
log()in a scheduled closure, issue #224. - Added
thingsto string conversion, issue #231. - Store task errors so they can be viewed, issue #227.
- Deprecate the hash (
#..) syntax, issue #232. - Removed deprecated
READ,MODIFY,EVENTandWATCH, issue #233. - Removed deprecated
test()on typestr, issue #234.
- Callable modules, issue #213.
- Install modules using a GitHub repository and
module.json, pr #216. - Added
refresh_module()function, issue #217. - Added
logfunction, pr #218. - Fixed bug with nested futures, issue #219.
- Added basic JSON support, issue #220.
json_dump(): https://docs.thingsdb.net/v1/collection-api/json_dump/json_load(): https://docs.thingsdb.net/v1/collection-api/json_load/
- Accept zero arguments for the
wrap()function, issue #223.
- Use data from buffer to solve re-allocation pointer bug, issue #214.
- Added a
roomtype to replace watching things. - Added
room()andis_room()functions. - Added
clear()function onthing,setandlist. - Fixed bug with removing a self reference from a
set<->setrelation. - Functions for the new
roomtype:id(): Return the Id of the room.git@github.com:cesbit/oversight.website.gitemit(..): Emit an event for the room.
- Protocol types for the new
roomtype:TI_PROTO_CLIENT_ROOM_JOIN(6)TI_PROTO_CLIENT_ROOM_LEAVE(7)TI_PROTO_CLIENT_ROOM_EMIT(8)TI_PROTO_CLIENT_ROOM_DELETE(9)TI_PROTO_CLIENT_REQ_JOIN(38)TI_PROTO_CLIENT_REQ_LEAVE(39)TI_PROTO_CLIENT_REQ_EMIT(40)
- Stored closures with side effects no longer require
wsebut can be used as long as a change is created. It is still possible to usewseto enfore a change.
- Removed
.watch(),.unwatch()and.emit()functions on typething. - Removed the following protocol types (replaced with room protocol):
TI_PROTO_CLIENT_WATCH_INI(1)TI_PROTO_CLIENT_WATCH_UPD(2)TI_PROTO_CLIENT_WATCH_DEL(3)TI_PROTO_CLIENT_WATCH_STOP(4)TI_PROTO_CLIENT_REQ_WATCH(35)TI_PROTO_CLIENT_REQ_UNWATCH(36)
- Insert data using syntax like
{"X": ...}(where X is a reserved keyword) is no longer possible. - Function
.def()on a closure is removed. Usestr(closure)instead. - Changed the return values of the following types:
regex: From object to string (e.g.{"*": "/.*/"}->"/.*/").closure: From object to string (e.g.{"/": "||nil"}->"||nil"). Note thatstr(closure)returns formatted closure code and just the typeclosurereturns the closure as-is.error: From object to string (e.g.{"!": ...}->"some error msg").
- Backup template no longer supports
{EVENT}as template variable. This variable is replaced with{CHANGE_ID}. - All the counter properties with
*event*are replaced with*change*. Counter propertychanges_quorum_lostis renamed to simplyquorum_lost. - All the node(s) info properties with
*event*are replaced with*change*. Propertynext_thing_idis changed tonext_free_idas Ids are used for more than just things. - Previous
EVENT(orMODIFY) access to a scope is renamed toCHANGE. (Note: this is not truly breaking since bothEVENTandMODIFYare marked as deprecated) - Previous
WATCHaccess is renamed toJOIN.WATCHis marked as deprecated. (Note: this is not truly breaking sinceWATCHis marked as deprecated) - It is no longer possible to watch the
@nodescope. All socket connections will receiveNODE_STATUSchanges as soon as the client is authenticated. Watch (JOIN) privileges are no longer required on the@nodescope for this feature. - Protocol
TI_PROTO_CLIENT_NODE_STATUS (0)no longer returns a plain string with the status but instead amapwithidcontaining the node Id andstatuswith the new node status. - Function
remove(..)on alisttype will remove all values where a given closure evaluates totrue. The return value will be a newlistwith the values which are removed. An alternative value is no longer possible.
- Added
to_type(..)to convert a thing into a type instance, issue #205. - Added definable properties:
regex,closureanderror, issue #204. - Fixed bug with relations after invalid type creation, issue #203.
- Fixed bug when adding a closure to an
anytype property, issue #202. - Changed default modules path, issue #207.
- Fixed bug with
replace(..)using an empty regular expression, issue #198. - Fixed incorrect default value bug after using
mod_type(..), issue #199. - Fixed memory leak after invalid
mod_type(..)usage, issue #200. - Added regular expression support on
str.split(..)function, issue #201.
- Added
extend_unique(..)function, issue #189. - Lookup procedures by name, issue #192.
- Fixed bug with regular expression syntax, issue #193.
- Added regular expression support on
str.replace(..)function, issue #194. - Fixed bug with storing modules during a full database store, issue #195.
- Search for Python interpreter in
PATHwhen no absolute path is given, issue #196. - Added
deploy_module(..)function, issue #197.
- Fixed bug in query-cache when hitting the query-recursion-depth, issue #188.
- Added
is_unique()andunique()functions, issue #185. - Fixed bug regarding access rights when calling a procedure, issue #186.
- Fixed bug with relations between stored and non-stored things, issue #183.
- Fixed bug while iterating over a set with relation, issue #184.
- Fixed bug in storing relations with full database store, issue #182.
- Renamed type
infotompdata, issue #176. - Add function
load()for loadingmpdatainto ThingsDB, issue #177. - Add function
is_mpdata(..)for checking thempdatatype, issue #179. - Module data as
mpdataandloadoption to overwrite this behavior, issue #178. - Delay module deletion to prevent a memory bug while loading a module, issue #181.
- Changed default
maxvalue when not given in a range definition, issue #172. - Fixed missing relations in experimental
export()function, issue #169. - Fixed bug with
deepargument with thefuture()function, issue #170. - Handle next run value of timers correctly after reboot, issue #171.
- Fixed loading modules at startup after a configuration change, issue #174.
- Fixed renaming a method after modifying the same method, issue #175.
- Prevent too early rejection of events, issue #167.
- Added
copy(..)anddup..)functions, issue #168.
- Added option to create relations between types, issue #161.
- Added support for Python modules, issue #162.
- Added support for Timers, issue #163.
new_timer: https://docs.thingsdb.net/v0/timers-api/new_timer/del_timer: https://docs.thingsdb.net/v0/timers-api/del_timer/has_timer: https://docs.thingsdb.net/v0/timers-api/has_timer/set_timer_args: https://docs.thingsdb.net/v0/timers-api/set_timer_args/timer_args: https://docs.thingsdb.net/v0/timers-api/timer_args/timer_info: https://docs.thingsdb.net/v0/timers-api/timer_info/timers_info: https://docs.thingsdb.net/v0/timers-api/timers_info/
- Added computed properties on wrapped type, issue #164.
- Fixed cleaning query garbage collection too early, issue #165.
- Added things as dictionary support, issue #146.
- Allow zero arguments for
wse(..)function, issue #148. - Added
regex()function, issue #149. - Added
first()andlast()functions for a list, issue #150. - Deprecate injection of special variable, issue #151.
- Fixed bug with multiple HTTP API request on the same connection, issue #153.
- Deprecated str.test() and added regex.test() function, issue #155.
- Added
is_regex(..)function, issue #156. - Fixed bug with
future()andmod_type(), issue #157. - Improved speed and less memory usage for internal
imap_ttype, issue #158. - Fixed bug with cached queries containing invalid syntax, issue #159.
- Fixed bug with
wse(..)internal status, issue #160.
- Fixed Alpine Linux build, issue #152.
- Evaluate
errorvalues asfalse, issue #135. - Removed list of deprecated functions, issue #136.
- Fixed bug in enumerator member conversion to
strorbytes, issue #137. - Changed access policy, issue #138.
- Fixed possible memory leak in
imap, issue #139. - Added future type, issue #140.
then: https://docs.thingsdb.net/v0/data-types/future/then/else: https://docs.thingsdb.net/v0/data-types/future/else/future: https://docs.thingsdb.net/v0/collection-api/future/is_future: https://docs.thingsdb.net/v0/collection-api/is_future/cancelled_err: https://docs.thingsdb.net/v0/errors/cancelled_err/
- Added module support, issue #141.
has_module: https://docs.thingsdb.net/v0/thingsdb-api/has_module/module_info: https://docs.thingsdb.net/v0/thingsdb-api/module_info/modules_info: https://docs.thingsdb.net/v0/thingsdb-api/modules_info/new_module: https://docs.thingsdb.net/v0/thingsdb-api/new_module/rename_module: https://docs.thingsdb.net/v0/thingsdb-api/rename_module/set_module_conf: https://docs.thingsdb.net/v0/thingsdb-api/set_module_conf/set_module_scope: https://docs.thingsdb.net/v0/thingsdb-api/set_module_scope/restart_module: https://docs.thingsdb.net/v0/node-api/restart_module/
- Added
equalsfunction for comparing things, issue #144. - Remove procedures in the
@thingsdbscope on restore, issue #147.
- Added
datetimeandtimevaltypes and related functions, issue #127.is_datetime: https://docs.thingsdb.net/v0/collection-api/is_datetime/is_timeval: https://docs.thingsdb.net/v0/collection-api/is_timeval/datetime: https://docs.thingsdb.net/v0/collection-api/datetime/timeval: https://docs.thingsdb.net/v0/collection-api/timeval/set_time_zone: https://docs.thingsdb.net/v0/thingsdb-api/set_time_zone/time_zones_info: https://docs.thingsdb.net/v0/thingsdb-api/time_zones_info/extract: https://docs.thingsdb.net/v0/data-types/datetime/extract/format: https://docs.thingsdb.net/v0/data-types/datetime/format/move: https://docs.thingsdb.net/v0/data-types/datetime/move/replace: https://docs.thingsdb.net/v0/data-types/datetime/replace/to: https://docs.thingsdb.net/v0/data-types/datetime/to/week: https://docs.thingsdb.net/v0/data-types/datetime/week/weekday: https://docs.thingsdb.net/v0/data-types/datetime/weekday/yday: https://docs.thingsdb.net/v0/data-types/datetime/yday/zone: https://docs.thingsdb.net/v0/data-types/datetime/zone/
- Added a lookup for procedures, issue #129.
- Ordered procedures, types and enumerators by name, issue #130.
- Added query caching, issue #131.
- Honor IP configuration for HTTP API and health checkes, issue #133.
- Functions
new_tokenandnew_backupnow accept date/time type, issue #134.
- Change local variable in scope behavior, issue #123.
- Fixed variable in closure body, issue #122.
- Fixed cleanup variable after exception in body, issue #121.
- Reserve
date,timeanddatetimenames, issue #125. - Changed exception when trying to delete an online node, issue #126.
- Fixed bug in
export()function, issue #119. - Fixed bug in order when applying wrap-only mode, issue #120.
- Fixed bug in wrap-only when set by function
set_type(..), issue #118.
- Added
join(..)function, issue #114. - Added
randstr(..)function, issue #115. - Fixed bug in restoring things from the garbage collector, issue #117.
- Fixed internal buffer resize when formatter is used, issue #113.
- Enable
warninglogging for deprecated functions, issue #109. - Fixed Kubernetes compatibility, issue #111.
- Added
export(..)as an experimental function, issue #104. - Fixed bug in formatting closure definitions, issue #103.
- Enable
debuglogging for deprecated functions, issue #106. - Fixed bug in garbage collection, issue #107.
- Added
result_size_limitto prevent large return data, issue #101. - Added
largest_result_sizecounter, issue #102.
- Remove restrictions when a
setis converted to alist, issue #96. - No longer allocate too much space for a
tuplein alist, issue #97. - Improved token generation by using the
getrandomsyscall, issue #98. - Fixed releasing cached integer values, issue #99.
- Added
is_closure(..)function, issue #100.
- Added new functions, issue #89.
has: https://docs.thingsdb.net/v0/data-types/list/has/reverse: https://docs.thingsdb.net/v0/data-types/list/reverse/shift: https://docs.thingsdb.net/v0/data-types/list/shift/unshift: https://docs.thingsdb.net/v0/data-types/list/unshift/split: https://docs.thingsdb.net/v0/data-types/str/split/trim: https://docs.thingsdb.net/v0/data-types/str/trim/trim_left: https://docs.thingsdb.net/v0/data-types/str/trim_left/trim_right: https://docs.thingsdb.net/v0/data-types/str/trim_right/replace: https://docs.thingsdb.net/v0/data-types/str/replace/alt_raise: https://docs.thingsdb.net/v0/collection-api/alt_raise/
- Consistent function naming, issue #93.
- Fixed possible error when ThingsDB types are cleared, issue #94.
- Fixed incorrect default value after changing a type, issue #91.
- Fixed error when changing a type definition with a new condition, issue #90.
- Fixed bug with lost parents after a type property rename action, issue #88.
- Fixed bug in full storage after renaming enumerator or type, issue #87.
- Added
rename_type(..)function, issue #83. - Added
rename_enum(..)function, issue #84. - Added
rename_procedure(..)function, issue #85.
- Fixed bug in nested
set_type(..)calls when they are linked, issue #79. - Fixed bug when using the
--versionargument flag, issue #77. - Fixed error handling when using the
set_type(..)function, issue #78. - Fixed bug in assigning a
setfrom a thing to a variable, issue #80. - Fixed misssing colon
:character in slices, issue #81. - Never set the
anytype as nillable for quick compare, issue #82.
- Fixed bug in function
filter(..)when used on a list, issue #76.
- Fixed bug in
mod_type(..)when wrap-only mode is enabled, issue #72. - Improvements on managing backup files, issue #71.
- Added Google Cloud Storage backup support, issue #74.
- Fixed bug in replacing a method with a new closure, issue #70.
- Fixed potential memory leak when re-using variable, issue #63.
- Fixed a bug when wrapping a
settype to alisttype, issue #65. - Added range and pattern conditions, issue #62.
- Added option to set a
Typein wrap-only mode, issue #64. - Added option to take access control after restore, issue #68.
- ThingDB
Typemay be extended using methods, issue #56. - Prevent quick away mode while processing many events, issue #57.
- Expose
Typemethods when wrapping a thing, issue #58. - Use fast hash method to find constant names, issue #59.
- Fixed function
del_node()which could leak some data, issue #60. - Fixed restore old types for backwards compatibility, issue #61.
- Allow creating backups on a single node, issue #50.
- Added a new function
event_id(), issue #51. - Fixed bug when using
wrap(..)in thingsdb or node scope, issue #53. - Support
Type(..)andEnum(..)syntax, issue #54.
- Added a new function
type_assert(), issue #45. - Changed return value for function
assert()tonil, issue #44. - Fixed removing the last enumerator member, issue #48.
- Changed
emit(..)to contain values like query results, issue #47.
- Added
emit(..)function for broadcasting events, issue #31. - Fixed error in generating a new type instance with enumerators, issue #33.
- Fixed invalid copy of list when using the
new(..)function, issue #36. - Added a new function
assign(..), issue #32. - Fixed incorrect type count when using thing as variable, issue #42.
- Fixed missing Thing ID after receiving a new thing by an event, issue #41.
- Changed the return value for function
.del(..), issue #40. - Fixed instances may be in use while changing a type, issue #39.
- Fixed
listorsetmay keep restriction after using mod_type(), issue #38. - Allow the
modaction for functionmod_type(..)to use a closure and remove specification restriction, issue #34.
- Accept a closure when adding a type definition, issue #10.
- Initialize type using default values, issue #25.
- Added option to change default value for enum type, issue #26.
- Fixed iterating over a set returning
nilinstead of0, issue #29. - Added
reduce(..),some(..)andevery(..)for thesettype, issue #24.
- Fixed wrong formatting thing with one item, issue #23.
- Add a rename action to the
mod_enum(..)andmod_type(..)functions, issue #18. - Support for minus (and plus) sign before expressions, issue #21.
- Added an enum type, issue #9.
- Variable in scope is not re-used, issue #16.
- Prevent creating type which name conflict with a build-in type or specification, issue #15.
- Existing array and set specifications are not updated after using mod_type(...), issue #14.
- No copy is created for an array when calling a closure bug, issue #13.
- Incorrect delete type after using mod_type(), issue #12.
- Typo in function "new" error message, issue #11.
- Return procedure definitions using a readable format enhancement, issue #7.
- Wrap() might fail after changing a Type, issue #6.
- Exclude backup files from ThingsDB backup file.
- Fixed connecting nodes.
- Fixed synchronizing on alphine linux.
- Added restore() function.