# Release Notes ## v0.5.3 Release Notes ### Bug Fixes - The SQL file cannot be successfully loaded in the Yarn-Client mode. (#2151 @tobegit3hub) - The SQL file cannot be successfully loaded in the Yarn-Cluster mode. (#1993 @tobegit3hub) ## v0.5.2 Release Notes ### Features - Add new built-in functions, including `char_length`, `char`, `radians`, and `replace` (#1895 #1896 #1897 @Ivyee17, #1924 @aceforeverd) - Add the demo of DolphinScheduler task (#1921 @vagetablechicken) - Support inserting values with a specified database name (#1929 @dl239) - Improve window computation with `UnsafeRowOpt` by removing the zipped dataframe (#1882 @tobegit3hub) - Improve the documents (#1831 @yclchuxue, #1925 @lumianph, #1902 #1923 @vagetablechicken) - Support GitHub Codespaces (#1922 @nautaa) ### Bug Fixes - `DistributeWindowIterator::GetKey()` may result in core dump (#1892 aceforeverd) - `Tablet` does not make `ttl` persistent when updating the ttl of index (#1935 @dl239) - `TaskManager` startup fails if `LANG=zh_CN.UTF-8` is set (#1912 @vagetablechicken) - There are duplicate records in `PRE_AGG_META_INFO` (#1919 @nautaa) - The OpenMLDB Spark fails to fallback to SparkSQL for unsupported functions (#1908 @tobegit3hub) - Fixing other minor bugs (#1914 aceforeverd, #1900 @mangoGoForward, #1934 @vagetablechicken) ### Code Refactoring #1899 @auula, #1913 @dl239, #1917 @mangoGoForward, #1803 @SaumyaBhushan, #1870 @Ivyee17, #1886 @frazie ## v0.5.1 Release Notes ### Features - Support the new OpenMLDB Kafka connector (#1771 @vagetablechicken) - Support very long SQLs in TaskManager (#1833 @tobegit3hub) - Support `window union` correctly in the cluster mode (#1855 #1856 @aceforeverd @dl239) - Support `count_where(*, condition)` in the storage engine (#1841 @nautaa) - Add a new micro-benchmark tool for performance evaluation (#1800 @dl239) ### Bug Fixes - Auto creating table throws error when a new ttl is greater than the current ttl. (#1737 @keyu813) - Offline tasks crash when enabling `UnsafeRowOpt` for continuous windows. (#1773 @tobegit3hub) - The aggregator is not reset if the table is empty. (#1784 @zhanghaohit) - The order for window union rows and original rows with the same order key is undefined. (#1802 @aceforeverd) - Queries with pre-aggregate enabled may crash under certain tests. (#1838 zhanghaohit) - Ending space in CLI may cause program crash. (#1820 @aceforeverd) - When creating an engine with empty databases, it cannot execute the command of `USE` database in the Python SDK. (#1854 @vagetablechicken) - When using the soft copy for csv files, it cannot read offline path with options. (#1872 @vagetablechicken) ### Code Refactoring #1766 @hiyoyolumi; #1777 @jmoldyvan; #1779 @SohamRatnaparkhi; #1768 @SaumyaBhushan; #1795 @vighnesh-kadam; #1806 @Mount-Blanc; #1978 @wangxinyu666666; #1781 @SaumyaBhushan; #1786 @xuduling; #1810 @IZUMI-Zu; #1824 @bxiiiiii; #1843 @1korenn; #1851 @zhouxh19; #1862 @Ivyee17; #1867, #1869, #1873, #1884 @mangoGoForward; #1863 @Ivyee17; #1815 @jmoldyvan; #1857 @frazie; #1878 @PrajwalBorkar ## v0.5.0 Release Notes ### Highlights - We have introduced an important performance optimization technique of pre-aggregation, which can significantly improve the performance for a query with time windows containing massive amount of rows, e.g., a few millions. (#1532 #1573 #1583 #1622 #1627 #1672 # 1712 @zhanghaohit @nautaa) - We have added a new storage engine that supports persistent storage (such as HDD and SSD) for the online SQL engine. Such a storage engine is helpful when a user wants to reduce the cost with acceptable performance degradation. (#1483 @Leowner) - We have supported C/C++ based User-Defined Functions (UDFs) with dynamic registration to enhance the development experience. (#1509 #1733 #1700 @dl239 @tobegit3hub) ### Other Features - Enhance the OpenMLDB Prometheus exporter ( #1584, #1645, #1754 @aceforeverd ) - Support collecting statistics of query response time for online queries ( #1497, #1521 @aceforeverd ) - Support new SQL commands: `SHOW COMPONENTS`, `SHOW TABLE STATUS` (#1380 #1431 #1704 @aceforeverd) - Support setting global variables (#1310 #1359 #1364 @keyu813 @aceforeverd) - Support reading Spark configuration files from the CLI (#1600 @tobegit3hub) - Support using multiple threads for the Spark local mode (#1675 @tobegit3hub) - Enhance the performance of join by using the Spark's native expression (#1502 tobegit3hub) - Support the validation for TaskManager configuration (#1262 @tobegit3hub) - Support tracking unfinished jobs in the TaskManager (#1474 @tobegit3hub) - Other minor features (#1601 @dl239; #1574 @vagetablechicken; #1546 @keyu813; #1729 @vagetablechicken; #1460 @tobegit3hub) ### Bug Fixes - Incorrect results when the order of conditions specified in `where` is different from that of the index (#1709 @aceforeverd) - Incorrect results of `lag`/`at`/`lead` under certain circumstances (#1605 #1739 @aceforeverd) - Memory leakage in `zk_client` (#1660 @wuxiaobai24) - No catalog update if the role of a tablet is changed (#1655 @dl239) - Related bugs about `UnsafeRow` for the offline engine (#1298, #1312, #1326, #1362, #1637, #1381, #1731 @tobegit3hub) - Incorrect results after adding a new index in the standalone mode (#1721 @keyu813) - Incorrect results of `SHOW JOBS` under certain circumstances (#1453 @tobegit3hub) - Incorrect results of the date columns with `UnsafeRowOpt`(#1469 @tobegit3hub) - Other minor bug fixes (#1698 @kfiring; #1651 @kutlayacar; #1621 @KaidoWang; #1150, #1243 @tobegit3hub; ) ### Code Refactoring #1616 @dl239; #1743 @zjx1319 ## v0.4.4 Release Notes ### Features - Support the standalone version by Java and Python SDKs (#1302 #1325 #1485 @tobegit3hub @HuilinWu2 @keyu813) - Support the blocking execution for offline queries (#1486 @vagetablechicken ) - Add the `getStatement` API in Java SDK (#1231 @dl239 ) - Support multiple rows insertion in the Python SDK (#1402 @hezhaozhao-git ) - Support the JDBC connection (#1511 @vagetablechicken ) ### Bug Fixes - The error message is empty when executing `show deployment` in CLI fails. (#1415 @dl239 ) - The `show job` and `show jobs` cannot display correct information. (#1440 @vagetablechicken ) - The built-in function execution on a string filed with the length of greater than 2048 characters causes OpenMLDB crash. (#1540 @dl239 ) - The simple expression inference fails in some cases (#1443 @jingchen2222 ) - The `PreparedStatement` in Java SDK does not perform as expected. (#1511 @vagetablechicken ) ### Code Refactoring #1467 @aimanfatima ; #1513 @L-Y-L ; #1503 @Stevinson ; ### Acknowledgement We appreciate the contribution to this release from all of our contributors, especially those from the community who are not from 4Paradigm's core OpenMLDB team, including @hezhaozhao-git @HuilinWu2 @keyu813 @aimanfatima @L-Y-L @Stevinson . We are looking forward to your contribution! ## v0.4.3 Release Notes ### Features - Add the output of the number of rows imported after successfully importing data (#1401 @Manny-op) - Code Refactoring (#1366 @Cupid0320; #1378 @wuteek; #1418 @prashantpaidi; #1420 @shiyoubun; #1422 @vagetablechicken) ### Bug Fixes - Loading online data with "not null" columns in Spark fails. (#1341 @vagetablechicken) - `max_where` and `min_where` results are incorrect if there is no rows matched. (#1403 @aceforeverd) - The `insert` and `select` execution of the standalone version fails. (#1426 @dl239) - Other minor bug fixes (#1379 @wuteek; #1384 jasleon) ## v0.4.2 Release Notes ### Features - Support timestamps in `long int` when importing a csv file (#1237 @vagetablechicken) - Change the default execution mode in CLI from `online` to `offline` (#1332 @dl239) - Enhancements for the Python SDK: - Support `fetchmany` and `fetchall` in Python SDK (#1215 @HuilinWu2) - Support fetching logs of TaskManager jobs in Python SDK and APIs (#1214 @tobegit3hub) - Support fetching the schema of result sets in Python SDK (#1194 @tobegit3hub) - Support the SQL magic function in Jupyter Notebook when using the Python SDK. (#1164 @HuilinWu2) - Enhancements for the TaskManager: - Taskmanager can find the local batchjob jar if the path is not configured. (#1250 @tobegit3hub) - Support the Yarn-client mode in TaskManager (#1265 @tobegit3hub) - Support correctness checking for TaskManager's configuration (#1262 @tobegit3hub) - Support reordering for the task list (#1256 @tobegit3hub) - Add new UDF functions of `lower` and `lcase` (#1192 @Liu-2001) - Offline queries that do not execute on tables will run successfully even when the connection fails. (#1264 @tobegit3hub) ### Bug Fixes - Offline data import fails when the timestamp value is `null`. (#1274 @tobegit3hub) - Start time of TaskManager jobs in CLI is null. (#1272 @tobegit3hub) - LAST JOIN may fail in the cluster version under certain circumstances. (#1226 @dl239) - Invalid SQL may run successfully. (#1208 @aceforeverd) ## v0.4.1 Release Notes ### Features - Improve CLI error messages and support the 'enable_trace' system variable (#1129 @jingchen2222) ### Bug Fixes - CLI coredumps when it fails to connect to a nameserver. (#1166 @keyu813) - Java SDK has the issue of memory leaks. (#1148 @dl239) - The startup fails if a pid file exists. (#1108 @dl239) - There are incorrect values for the column with the date type when loading data into an online table. (#1103 @yabg-shuai666) - Offline data import for the CSV format may cause incorrect results. (#1100 @yabg-shuai666) - 'Offline path' cannot be displayed after importing offline data. (#1172 @vagetablechicken) ## v0.4.0 Release Notes ### Highlights - The SQL-centric feature is enhanced for both standalone and cluster versions. Now you can enjoy the SQL-centric development and deployment experience seamlessly. (#991,#1034,#1071,#1064,#1061,#1049,#1045,#1038,#1034,#1029,#997,#996,#968,#946,#840,#830,#814,#776,#774,#764,#747,#740,#466,#481,#1033,#1027,#966,#951,#950,#932,#853,#835,#804,#800,#596,#595,#568,#873,#1025,#1021,#1019,#994,#991,#987,#912,#896,#894,#893,#873,#778,#777,#745,#737,#701,#570,#559,#558,#553 @tobegit3hub; #1030,#965,#933,#920,#829,#783,#754,#1005,#998 @vagetablechicken) - The Chinese documentations are thoroughly polished and accessible at https://docs.openmldb.ai/ . This documentation repository is available at https://github.com/4paradigm/openmldb-docs-zh , and you are welcome to make contributions. - Experimental feature: We have introduced a monitoring module based on Prometheus + Grafana for online feature processing. (#1048 @aceforeverd) ### Other Features - Support SQL syntax: LIKE, HAVING (#841 @aceforeverd; #927,#698 @jingchen2222) - Support new built-in functions: reverse (#1004 @nautaa), dayofyear (#856 @Nicholas-SR) - Improve the compilation and install process, and support building from sources (#999,#871,#594,#752,#793,#805,#875,#871,#999 @aceforeverd; #992 @vagetablechicken) - Improve the GitHub CI/CD workflow (#842,#884,#875,#919,#1056,#874 @aceforeverd) - Support system databases and tables (#773 @dl239) - Improve the function `create index` (#828 @dl239) - Improve the demo image (#1023,#690,#734,#751 @zhanghaohit) - Improve the Python SDK (#913,#906 @tobegit3hub;#949,#909 @HuilinWu2; #838 @dl239) - Simplify the concepts of execution modes (#877,#985,#892 @jingchen2222) - Add data import and export for the cluster version (#1078 @tobegit3hub) - Add new deployment command for the cluster version (#921 @dl239) - Support default values when creating a table (#563 @zoyopei) - Support string delimiters and quotes (#668 @ZackeryWang) - Add a new `lru_cache` to support upsert (#795 @vagetablechicken) - Support adding index with any `ts_col` (#828 @dl239) - Improve the `ts` packing in `sql_insert_now` (#944 ,#974 @keyu813) - Improve documentations (#952 #885 @mahengyang; #834 @Nicholas-SR; #792,#1058,#1002,#872,#836,#792 @lumianph; #844,#782 @jingchen2222; #1022,#805 @aceforeverd) - Other minor updates (#1073 @dl239) ### Bug Fixes #847, #831, #647, #934, #953, #1015, #982, #927, #994, #1008, #1028, #1019, #779, #855, #350, #631, #1074, #1073, #1081 @nautaa, @Nicholas-SR, @aceforeverd, @dl239, @jingchen2222, @tobegit3hub, @keyu813