Gluesql

Latest version: v0.15.0

Safety actively analyzes 687881 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

0.11.0

🌊 Breaking Changes

🌈 GlueSQL.js
JavaScript interface for both web browsers and Node.js
GlueSQL works again in web browsers!

e.g.
javascript
import { gluesql } from 'gluesql';

const db = await gluesql();

db.query(`
CREATE TABLE User (id INTEGER, name TEXT);
INSERT INTO User VALUES (1, "Hello"), (2, "World");
`);

const [{ rows }] = await db.query('SELECT * FROM User;');
console.log(rows);


More Info
- https://github.com/gluesql/gluesql/tree/main/gluesql-js


Related PRs
- Implement TryFrom between Value and serde\_json::Value panarch (501)
- GlueSQL.js - support both web browsers and Node.js panarch (512)
- Fix gluesql-js/package.json to publish files correctly, panarch (543)

πŸš€ Features

New functions - `ABS`, `SIGN` and `CONCAT`
- Concat function implementation earney (521)
- add ABS and SIGN functions earney (510)

`SHOW COLUMNS`
- Implement SHOW COLUMNS earney (517)

`SledStorage` export and import
- Implement SledStorage export \& import features panarch (547)

CLI - SQL file read-and-execute
- Add support SQL file read-and-execute pythonbrad (496)

Other new features
- Implement cast to decimal earney (529)
- More numeric binary operations with Decimal earney (530)
- Implement hash join executor support panarch (494)
- Feature implementation - Unary Factorial operation for (unsigned) `INT8` type MRGRAVITY817 (477)
- Support `limit`, `offset` clause in Insert into values ~ devgony (484)
- Update evaluate\_stateless to support all existing SQL functions, panarch (471)

πŸ’‘ Improvements

`sqlparser-rs` migration
- Migrate code from sqlparser v14 to v16 earney (542)
- Migrate sqlparser-rs version from v0.13 to v0.14, panarch (541)
- Bump up `sqlparser` crate version from 0.11 to 0.13 MRGRAVITY817 (479)

Unit test
- Add unit tests to data/value/into.rs module pythonbrad (518)
- Add unit tests for data/value/literal.rs pythonbrad (497)

Error handling
- Scalar subquery should throw Error when more than one row returned devgony (537)
- Apply better names to numeric binary operation error names 424 earney (534)
- cast 255 as int8, should return an error, but returns 127 instead (resolves issue 545) earney (546)

Other improvements
- Fix typo (Tripple to Triple) ever0de (539)
- Minor improvements ever0de (507)
- Bump up toolchain ver. from 1.58 -> 1.59 MRGRAVITY817 (502)
- Apply nit code improvements to core/ executor/join module panarch (498)
- Simplify lifetime uses in data/literal binary operators panarch (495)
- Add macos attributes in gitignore ever0de (492)
- Fix typo ever0de (490)
- Remove unused generic in `IndexMut` ever0de (488)
- Remove `Debug` macro from the generic requirements for key ever0de (486)
- Bump rust version 1.58 ever0de (487)
- Update Join::apply to take the whole table(rows) as a stream iterator MRGRAVITY817 (472)

πŸ› Bug Fixes

- Fix CLI --execute {file}.sql option to support CRLF line break, panarch (519)
- Fix value/ big\_endian module to handle negative integers correctly, panarch (505)

---

πŸ‘ New Contributors
* pythonbrad made their first contribution in https://github.com/gluesql/gluesql/pull/496
* earney made their first contribution in https://github.com/gluesql/gluesql/pull/510

**Full Changelog**: https://github.com/gluesql/gluesql/compare/v0.10.2...v0.11.0

0.10.2

default-features = false
features = ["memory-storage"]
or features = ["sled-storage"]

Configuration above now works.
`memory-storage` or `sled-storage` features were not working in `v0.10.1` and it is fixed in `v0.10.2`.

- Remove gluesql prefix in dependencies and features ever0de (465)
- Fix src/lib.rs doc comment, panarch (469)


πŸ’‘ Improvements

- Add --all-targets to cargo test in github rust action panarch (467)
- Support `limit`, `offset` clause in `Insert into Table Select ~` devgony (466)


**Full Changelog**: https://github.com/gluesql/gluesql/compare/v0.10.1...v0.10.2

0.10.1

🌊 Breaking Changes
🌈 CLI Support

$ cargo install gluesql

![image](https://user-images.githubusercontent.com/2025065/148672069-541f5687-15a6-4029-b988-1ca6b8e2f31c.png)
- Implement CLI application panarch (440)
- Add [[bin]] to Cargo.toml, update cli and storage workspace versions, panarch (451)
- Update cli/ clap version to 3.0.1 panarch (449)
- Change from `cli/target` to `<general>/target` in ignore, ever0de (443)

πŸŽ‰ New Data Types
- `INT(8)` Add int8 data type ever0de (407)
- `DECIMAL` Adding data type: Decimal boomkim (377)

πŸš€ Features

New Functions - `EXTRACT` & `NOW`
- Implementing Extract() \& now() Function simple6192 (379

CTAS (`CREATE TABLE AS SELECT`) support
- Support CTAS(Create Table As Select ~) statement devgony (414)

Postfix factorial (`3! = 6`) operator support
- 385 factorial operator devil-k (396)

`SHOW TABLES` & `SHOW VERSION`
- Add `Metadata` optional store trait, panarch (438)

Convert the entire project code structure to workspace based
- Convert `gluesql` workspace to root lib-package ever0de (446)
- Refactor monorepo ever0de (442)

Changes

- Update async-recursion \& strum\_macros versions panarch (460)
- Remove duplicate action ever0de (459)
- Apply Serde to MemoryStorage instance and make it public, panarch (453)
- Remove sorter cfg feature, support all ORDER BY by default panarch (450)
- Repair broken links in README ever0de (445)
- Bump rust version to 1.57 ever0de (444)
- Move `join_columns` argument from `Join::apply()` to `Join::new()` MRGRAVITY817 (441)
- typo edit: bigedian -> bigendian resolves 399 boomkim (436)
- Move `order_by` from query to select devgony (435)
- Support arithmetic operations for decimal and null ever0de (433)

πŸ› Bug Fixes

- Fill in the missing 446 ever0de (447)
- Add missing assert macro ever0de (434)

---

**Full Changelog**: https://github.com/gluesql/gluesql/compare/v0.9.0...v0.10.1

0.9.0

🌊 Breaking Changes

🌈 New Reference Storage - `MemoryStorage`
Now GlueSQL supports two reference storages - `SledStorage` and `MemoryStorage`
- In-memory storage support panarch (331)
- Support AlterTable for MemoryStorage ever0de (376)

πŸŽ‰ New Data Types
- `UUID` - add uuid data type maruoovv (360)
- `MAP` - Add `MAP` data type and `UNWRAP` function panarch (367)
- `LIST` - Add LIST data type, panarch (370)

✨ New Functions
- `SQRT`, `POWER` - Add Sqrt, Power simple6192 (312)
- `RADIANS`, `DEGREES`, `PI` - Implement radians, degrees, pi math functions 280 devil-k (322)
- `LTRIM`, `RTRIM` - Implement Function: LTRIM, RTRIM devgony (294)
- `REVERSE` - [ADD] - reverse function zmrdltl (327)
- `ASIN`, `ACOS`, `ATAN` - Add functions: ASIN(), ACOS(), ATAN() boomkim (296)
- `TRIM` - Implement TRIM function - Other features ever0de (307)
- `SUBSTR` - Implement substr function vbbono (341)
- `LOG` - Support function `LOG` slhmy (371)
- `REPEAT` - Implement REPEAT Function inhwa1025 (352)
- `UUID` - add function random generate uuid value maruoovv (372)
- `AVG` - Support aggregation `AVG` zmrdltl (368)

πŸ’‘ New Expressions
- `%` - Implement binary operator modulo `%` MRGRAVITY817 (319)
- `ILIKE` & `NOT ILIKE` - Support ILIKE and NOT ILIKE operator maruoovv (334)
- `XOR` - Support binary operator `XOR`, update data-type `Int` zmrdltl (359)
- `CASE` - Support conditional function `CASE` MRGRAVITY817 (330)

πŸš€ Features
- Apply bigdecimal feature (solved issue) devgony (380)
- Implement CAST from string to DATE, TIME and TIMESTAMP No-YE (375)
- support execute\_async 24seconds (366)
- CAST from string to INTERVAL devgony (335)

Changes
- Change tarpaulin version to latest ever0de (410)
- Add PartialEq\<Literal> for Value unit tests yellowHSE (413)
- Add Divide unit tests jiwon-dev (408)
- Add literal.rs subtract unit tests kwon-heejeong (409)
- add Null unit case tests for literal.rs hyangmin82 (412)
- Add literal.rs multiply unit tests heej-ng (411)
- Implement prelude pattern to organize userside APIs MRGRAVITY817 (388)
- Support unary operator(plus, minus) unit test zmrdltl (406)
- Supplement remove static lifetime issue ever0de (403)
- Remove `'static` lifetime of generic types for `GStore` ever0de (400)
- Implement `SledStorage::check_retry` wrapper function ever0de (392)
- Remove explicit uses of TryFrom \& TryInto, panarch (397)
- Bump rust version to `1.56` \& edition `2021` ever0de (395)
- Apply toml formatting ever0de (391)
- Fix `UUID` to `Uuid` to follow the naming convention of Enums MRGRAVITY817 (389)
- Replace eval\_to\_\* func to macro vbbono (374)
- 328 replace macros to functions devil-k (365)
- Remove AstLiteral use in data/row.rs panarch (363)
- Implement implicit null insert. boomkim (361)
- Bump rust version to 1.55 stable ever0de (358)
- Add MemoryStorage integration tests to reach all storage impl codes panarch (355)
- Simplify evaluate module codes by replacing from take(1).. to try\_next() panarch (347)
- Add Codecov badge on README MRGRAVITY817 (343)
- Feature test partial zmrdltl (332)
- Apply code coverage test to GitHub Action MRGRAVITY817 (326)
- Update math function `MOD` to use `modulo` in `Evaluated` MRGRAVITY817 (321)

πŸ› Bug Fixes
- Handle do not match columns and values ever0de (356)
- [Fix, Update] - Partial\_Eq error, unit test zmrdltl (353)
- Raise error when column option `PRIMARY KEY` is used. heka1024 (339)

πŸ‘ New Contributors
* simple6192 made their first contribution in https://github.com/gluesql/gluesql/pull/312
* devil-k made their first contribution in https://github.com/gluesql/gluesql/pull/322
* zmrdltl made their first contribution in https://github.com/gluesql/gluesql/pull/327
* boomkim made their first contribution in https://github.com/gluesql/gluesql/pull/296
* vbbono made their first contribution in https://github.com/gluesql/gluesql/pull/341
* 24seconds made their first contribution in https://github.com/gluesql/gluesql/pull/366
* slhmy made their first contribution in https://github.com/gluesql/gluesql/pull/371
* inhwa1025 made their first contribution in https://github.com/gluesql/gluesql/pull/352
* heej-ng made their first contribution in https://github.com/gluesql/gluesql/pull/411
* hyangmin82 made their first contribution in https://github.com/gluesql/gluesql/pull/412
* kwon-heejeong made their first contribution in https://github.com/gluesql/gluesql/pull/409
* jiwon-dev made their first contribution in https://github.com/gluesql/gluesql/pull/408
* yellowHSE made their first contribution in https://github.com/gluesql/gluesql/pull/413

**Full Changelog**: https://github.com/gluesql/gluesql/compare/v0.8.0...v0.9.0

0.8.0

🌊 Breaking Changes
πŸŽ‰ Transaction Support
GlueSQL now supports "TRANSACTION"!
New `Transaction` store trait with three interface methods: `begin`, `rollback` and `commit` is added.
GlueSQL's default storage engine, `SledStorage` supports MVCC transaction using snapshot based internal data structure.

`SledStorage` transaction details
- Transaction isolation level is `SNAPSHOT ISOLATION` or also known as `REPEATABLE READ`.
- Concurrency support but only a single writer at the same time.
- Read operations are not blocked by other read or write operations. (snapshot based)
- Provides transaction timeout limit functionality.

Merged PRs
- Implement MVCC transaction, panarch (257)
- Implement SledStorage transaction timeout support, panarch (297)

✨ New Functions

Text Functions
- `TRIM`, `LPAD` and `RPAD`
Math Functions
- `FLOOR`, `CEIL`, `ROUND`, `DIV`, `MOD`, `GCD`, `LCM`, `SIN`, `COS`, `TAN`, `EXP`, `LN`, `LOG2` and `LOG10`.

Merged PRs
- Implement TRIM function ever0de (292)
- Add Floor, Ceil, Round Function tmdgusya (291)
- Add mathematical functions: DIV(), MOD(). MRGRAVITY817 (295)
- Add support for gcd and lcm operator genieCS (290)
- Support SIN, COS, TAN functions. maruoovv (289)
- Lpad rpad No-YE (311)
- Add `Exp`, `Ln`, `Log2`, `Log10` heka1024 (305)

πŸš€ Features

- Add support for like operaror euiko (252)

πŸ“š Changes

- Resolve clippy error ever0de (261)
- Support `DivisorShouldNotBeZero` error and Remove `{number} / {interval}` implementations MRGRAVITY817 (309)
- Remove PRIMARY KEY uses in test codes panarch (315)
- Extend `sled_transaction_timeout_` tests timeout duration, panarch (316)
- Replace binary op macro to normal function, panarch (304)
- Add toolchain file that has version number 1.54 MRGRAVITY817 (303)
- Reduce try\_self! and try\_into! macro uses, panarch (302)
- Remove Row from Payload::Select, panarch (287)
- Remove unnecessary IntoIterator call syntax ever0de (274)
- Replace filter\_map and next to find\_map ever0de (271)
- Chang unreachable code that was being treated as "unwrap" to return unreachable error ever0de (270)
- Update deps: sqlparser, rust\_decimal, indexmap and tokio panarch (263)
- Add --all-targets option to clippy panarch (262)
- Remove Boolinator crate dependency, panarch (254)

πŸ› Bug Fixes

- renew Usage at README.md and Doc: executing multiple queries devgony (260)

πŸ‘ New Contributors
Welcome and thanks a lot to new contributors!
- euiko
- ever0de
- devgony
- tmdgusya
- MRGRAVITY817
- genieCS
- maruoovv
- No-YE
- heka1024

0.7.0

🌊 Breaking Changes
`INDEX` support
Now GlueSQL support index!
You can manipulate indexes using `CREATE INDEX` and `DROP INDEX` queries.
Newly added query planner is not that smart enough for now, and it only supports single-expression index.
sql
- This kind of multi-expr index is not supported, yet.
CREATE INDEX idx_test ON TableA (id ASC), (name DESC);

For more details, you can look around index integration tests in here - [INDEX - integration tests](https://github.com/gluesql/gluesql/tree/main/src/tests/index)

`ORDER BY` support
Sorting by multiple expressions and both ascending & descending orders are all supported.
With the feature `index`, `ORDER BY` clause can be also indexed.
`ORDER BY` support for non-indexed expressions are supported by optional feature `sorter` and it is enabled by default.
If you consider to use GlueSQL for big data analysis purpose, then it would be better to turn off `sorter` feature which requires evaluation of all fetched rows for non-indexed `ORDER BY` clauses.
sql
SELECT * FROM TableA ORDER BY id;
SELECT * FROM TableA ORDER BY id ASC, name DESC;
SELECT * FROM TableA ORDER BY id || name DESC, name;
...


πŸš€ Features

- Update query planner to find index in subqueries, panarch (250)
- Fix sled-storage to read \& write less on index sync, panarch (247)
- Implement ORDER BY {expr} index support panarch (244)
- ORDER BY support panarch (243)
- Implement TryFrom\<\&str> for Interval, panarch (239)
- Add more expr support to DEFAULT \& INSERT VALUES, panarch (236)
- Add index expression validator panarch (231)
- Implement basic single expression index, panarch (227)
- New AST for execution layer panarch (223)

πŸ“š Changes

- Fix Rust GitHub Action to check more feature combinations on clippy \&… panarch (248)
- Update query planner to find index in multi-expr-based ORDER BY, panarch (245)
- Move Box from ast::Function to ast::Expr, panarch (241)
- Split ast::Function into Function \& Aggregate, panarch (240)
- Remove unnecessary error formatting on expr \& value types which impl … panarch (238)
- Validate default expr panarch (237)
- Update executor/limit to use evaluate, panarch (235)
- Update dependency versions panarch (234)
- Remove evaluate use\_empty param, replace to handle in BlendContext panarch (233)
- Fix benches/sled\_benchmark.rs panarch (225)
- Fix glue.rs test code to DROP TABLE at first, panarch (224)

πŸ› Bug Fixes

- Pass FilterContext to blend, projection in nested select can use oute… panarch (249)
- Fix sled-storage to read \& write less on index sync, panarch (247)
- Apply limit after aggregate \& sort finished, panarch (246)
- Fix ALTER TABLE DROP COLUMN to remove related indexes panarch (232)

Page 2 of 4

Β© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.