π Breaking Changesβ
π Python Supportβ
Code Samplesβ
from gluesql import Glue, MemoryStorage
from tabulate import tabulate
db = Glue(MemoryStorage())
sql = """
SELECT
u.name as user,
d.name as device
FROM User u
JOIN Device d ON u.id = d.userId
""".strip().replace(
" ", ""
)
result = db.query(sql)
rows = result[0].get("rows")
print(f"\n[Query]\n{sql}")
print(tabulate(rows, headers="keys", showindex=True, tablefmt="simple_outline"))
- feat: Implement Python Binding @jopemachine (#1357)
π Redis Storageβ
π CSV Storageβ
- Add CsvStorage support to CLI \& Rust package @panarch (#1437)
- Implement CSV Storage, @panarch (#1280)
π More operators and functionsβ
- feat: add index_by node @seonghun-dev (#1355)
- Implement DEDUP function @jinlee0 (#1430)
- Bitwise Shift Right Operator Implementation @2-NOW (#1394)
- feat: implement ast_builder for values function @tgsong827 (#1375)
- Implement
ADD_MONTH
function @kite707 (#1341) - Implement
SPLICE
function @jinlee0 (#1371) - Implement
SLICE
function @Kwontaehwon (#1340) - Implement entries in ast builder @2-NOW (#1364)
- Implement GREATEST function @TheMan1697 (#1312)
- Implement bitwise-not operator (~) in ast builder @gurugio (#1366)
- Implement COALESCE function @cake-monotone (#1333)
- feat: Implement select without table function in ast_builder @ding-co (#1365)
- Add ExprWithAliasNode to ast builder @julia-ing (#1359)
- feat: Implement take function in ast_builder @ding-co (#1346)
- Implement last_day function in ast_builder @cjy13753 (#1344)
- Implement LAST_DAY function #1315 @cjy13753 (#1323)
- Implement ast_builder for is_empty function @julia-ing (#1337)
- Implement
ast_builder
for skip function @cl-kim (#1334) - Implement ENTRIES function @2-NOW (#1315)
- Feature/operator bit not @gurugio (#1321)
- Implement Skip function @cl-kim (#1325)
- Implement VALUES function for Map type @tgsong827 (#1288)
- Feat: impl bitwise-and operation @jinlee0 (#1281)
- Implement BIT_SHIFT_LEFT operation @codernineteen (#1286)
- implement
SORT
function @Jaehui-Lee (#1300) - feat: Implement
LENGTH
function @jopemachine (#1298) - [Function] Implement TAKE function @ding-co (#1283)
- feat: implement
ast_builder
for replace function @ChobobDev (#1275) - feat: implement IS_EMPTY function @julia-ing (#1282)
- [Function] Implement REPLACE function @ChobobDev (#1266)
- Implement MD5 Function @seonghun-dev (#1242)
- [AST Builder] Implement ascii, chr function in ast @seonghun-dev (#1244)
- [AST Builder] Implement Geometic Point Type and Geometric Function in AST Builder @seonghun-dev (#1222)
π Featuresβ
π Improvementsβ
- Fix parsing of BigDecimal literals with zero fraction part as floats, not integer @zmrdltl (#1416)
- Update docs/ast-builder padding.md code block lang keyword, @panarch (#1436)
- Support StoreMut trait to Optional @seonghun-dev (#1435)
- docs: write docmentation for padding @devgony (#1434)
- test: add test cases for astb-padding @devgony (#1433)
- Upgrade to chrono v0.4.31 and adjust millisecond value in Timestamp Creation @zmrdltl (#1427)
- Remove unnecessary comments in evalaute/function.rs @panarch (#1431)
- write docmentation for character_conversion @devgony (#1428)
- docs: Add
SLICE
function doc @fregataa (#1425) - test: add cases to character_conversion @devgony (#1424)
- docs:Add doc about SPLICE function @jinlee0 (#1423)
- Change store RowIter type from Iterator to Stream @panarch (#1419)
- Reflect Deprecation of
from_utc
in Cratechrono
@zmrdltl (#1415) - Remove eval_to_{int|float..} macro uses in core/../evaluate/function.rs, @panarch (#1361)
- test: write example for ast builder @daengdaengLee (#1259)
- Fix merge conflict in data/value/mod.rs @panarch (#1406)
- chore: implement
ConvertError
, @ever0de (#1401) - refactor: remove implementation of from Value trait for Evaluated @tgsong827 (#1399)
- refactor: update function module's namespacing in ast_builder @tgsong827 (#1398)
- chore: remove
Result
fromast_builder::transaction
return type @ever0de (#1404) - chore: bump rust version to 1.72 @ever0de (#1388)
- chore: add example of convert from payload to custom struct @ever0de (#1379)
- Update Chrono version to 0.4.26, @panarch (#1374)
- Update test-suite Tester::run to return Payload, @panarch (#1373)
- Remove .unwrap() uses in test-suite/ test codes, @panarch (#1372)
- Replace run!, test! and count! macros in test-suite to Tester methods, @panarch (#1368)
- Update coverage.yml gh-action to ignore await only lines, @panarch (#1370)
- Apply pretty_assertions::assert_eq! to core/ ast_builder unit tests @panarch (#1369)
- Simplify value evaluate cmp with literal @panarch (#1353)
- Update gh-action author assign - add zmrdltl to reviewers @panarch (#1342)
- Refactor GCD and LCM functions @cake-monotone (#1331)
- Refactor write_rows @devgony (#1319)
- Js pkg wasm pack build not to generate readme and packagejson @panarch (#1327)
- Update pkg/javascript dist directories to use dist_web/ and dist_node⦠@panarch (#1326)
- Upgrade bigdecimal to 0.4.1, sqlparser to 0.36.1 @jinlee0 (#1322)
- Update wasm-pack-action version to 0.4.0, @panarch (#1316)
- Update JavaScript package load_indexeddb method to get namespace as a⦠@panarch (#1320)
- Upgrade sqlparser-rs version to 0.35, @panarch (#1292)
- Remove unused error variant in JsonStorage @panarch (#1278)
- Implement CAST text literal or value to MAP or LIST, @panarch (#1267)
- Simplity JsonStorage Store::fetch_all_schemas codes, @panarch (#1264)
- Change console.log in gluesql.js -> console.debug @parkma99 (#1256)
- Replace
actions-rs/toolchain
withdtolnay/rust-toolchain
@jongwooo (#1251) - ci: Automatically assign a PR to its author @rapsealk (#1253)
- Remove sync methods in core/ Glue struct, @panarch (#1247)
- Remove test function in test-suite tester, @panarch (#1246)
- fix: allow interval cast-related functions to accept only literals instead of evaluations @ever0de (#1238)
- Split custom Partial{Eq|Ord} impl of Value \& Literal into evaluate_{eq|cmp} @panarch (#1233)
- Improve example codes formatting @jopemachine (#1235)
- feat: fmt list and map @Mehrbod2002 (#1226)
- Update README.md - add blog article links @panarch (#1232)
- Write the blog article - revolutionizing databases by unifying the qu⦠@panarch (#1231)
- Write the blog article - test driven documentation @panarch (#1229)
- Write the blog article - breaking the boundary between sql and nosql β¦ @panarch (#1228)
- Add test and doc for ast-builder::statements::querying::data-aggregation @devgony (#1224)
π Bug Fixesβ
- fix: Literal comparison with BinaryOperator @ding-co (#1397)
- fix: update Key.cmp to compare a type with other type @tgsong827 (#1367)
- Fix Value::evaluate_cmp_with_literal between Decimal and Literal::Num⦠@panarch (#1352)
- Fix spool on
tabular off
andSelectMap
@devgony (#1314) - Update auto-assign-action to be triggered on PR open from fork repos @panarch (#1313)
- Fix Scala Subquery should contain only 1 column @ChobobDev (#1284)
- Wrap config path by quotes in auto-author-assign.yml @panarch (#1258)
- Apply word-wrap to docs/ article h1 @panarch (#1230)
- Fix docusaurus.config.js themeConfig handler @panarch (#1225)
π New Contributorsβ
- @Mehrbod2002 made their first contribution in https://github.com/gluesql/gluesql/pull/1226
- @jopemachine made their first contribution in https://github.com/gluesql/gluesql/pull/1235
- @rapsealk made their first contribution in https://github.com/gluesql/gluesql/pull/1253
- @parkma99 made their first contribution in https://github.com/gluesql/gluesql/pull/1256
- @julia-ing made their first contribution in https://github.com/gluesql/gluesql/pull/1282
- @ding-co made their first contribution in https://github.com/gluesql/gluesql/pull/1283
- @Jaehui-Lee made their first contribution in https://github.com/gluesql/gluesql/pull/1300
- @jinlee0 made their first contribution in https://github.com/gluesql/gluesql/pull/1322
- @codernineteen made their first contribution in https://github.com/gluesql/gluesql/pull/1286
- @tgsong827 made their first contribution in https://github.com/gluesql/gluesql/pull/1288
- @cl-kim made their first contribution in https://github.com/gluesql/gluesql/pull/1325
- @gurugio made their first contribution in https://github.com/gluesql/gluesql/pull/1321
- @2-NOW made their first contribution in https://github.com/gluesql/gluesql/pull/1315
- @cake-monotone made their first contribution in https://github.com/gluesql/gluesql/pull/1331
- @cjy13753 made their first contribution in https://github.com/gluesql/gluesql/pull/1323
- @TheMan1697 made their first contribution in https://github.com/gluesql/gluesql/pull/1312
- @Kwontaehwon made their first contribution in https://github.com/gluesql/gluesql/pull/1340
- @kite707 made their first contribution in https://github.com/gluesql/gluesql/pull/1341
- @daengdaengLee made their first contribution in https://github.com/gluesql/gluesql/pull/1259
- @fregataa made their first contribution in https://github.com/gluesql/gluesql/pull/1425
Full Changelog: https://github.com/gluesql/gluesql/compare/v0.14.0...v0.15.0