diff --git a/CHANGELOG.md b/CHANGELOG.md index 71d4b29..be52bb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Change Log +## Version 0.27.0 _(2024-09-07)_ + +- Improve comparing Arrays values. +- Support Range data types. +- Implement `int4range` range function. +- Implement `daterange` range function. +- Implement `tsrange` range function. +- Simplify the dynamic types helper functions. +- Implement `ARRAY_PREPEND` function. +- Implement `ARRAY_REMOVE` function. +- Implement `ARRAY_APPEND` Array function. +- Implement `ARRAY_REPLACE` Array function. +- Update `ARRAT_POSITION` signature. +- Organize the std functions registers. +- Implement `BIT_XOR` Aggregation function. +- Implement `ARRAY_AGG` Aggregation function. +- Improve the type checker to resolve dynamic types in arguments. +- Implement Contains operator `@>` between Range and Element. + ## Version 0.26.0 _(2024-08-17)_ - Fix iagnostic position when parsing undefined symbol. diff --git a/Cargo.lock b/Cargo.lock index 47438e1..e6541b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -423,7 +423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.5", + "hashbrown", "lock_api", "once_cell", "parking_lot_core", @@ -552,7 +552,7 @@ dependencies = [ [[package]] name = "gitql" -version = "0.26.0" +version = "0.27.0" dependencies = [ "atty", "criterion", @@ -567,14 +567,14 @@ dependencies = [ [[package]] name = "gitql-ast" -version = "0.23.1" +version = "0.24.0" dependencies = [ "gitql-core", ] [[package]] name = "gitql-cli" -version = "0.26.1" +version = "0.27.0" dependencies = [ "comfy-table", "gitql-ast", @@ -585,7 +585,7 @@ dependencies = [ [[package]] name = "gitql-core" -version = "0.3.0" +version = "0.4.0" dependencies = [ "chrono", "csv", @@ -594,7 +594,7 @@ dependencies = [ [[package]] name = "gitql-engine" -version = "0.26.0" +version = "0.27.0" dependencies = [ "chrono", "gitql-ast", @@ -604,7 +604,7 @@ dependencies = [ [[package]] name = "gitql-parser" -version = "0.25.1" +version = "0.26.0" dependencies = [ "gitql-ast", "gitql-core", @@ -612,7 +612,7 @@ dependencies = [ [[package]] name = "gitql-std" -version = "0.3.1" +version = "0.4.1" dependencies = [ "chrono", "gitql-core", @@ -684,9 +684,9 @@ dependencies = [ [[package]] name = "gix-attributes" -version = "0.22.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37ce99c7e81288c28b703641b6d5d119aacc45c1a6b247156e6249afa486257" +checksum = "ebccbf25aa4a973dd352564a9000af69edca90623e8a16dad9cbc03713131311" dependencies = [ "bstr", "gix-glob", @@ -719,9 +719,9 @@ dependencies = [ [[package]] name = "gix-command" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d76867867da891cbe32021ad454e8cae90242f6afb06762e4dd0d357afd1d7b" +checksum = "dff2e692b36bbcf09286c70803006ca3fd56551a311de450be317a0ab8ea92e7" dependencies = [ "bstr", "gix-path", @@ -766,9 +766,9 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.7" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b328997d74dd15dc71b2773b162cb4af9a25c424105e4876e6d0686ab41c383e" +checksum = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c" dependencies = [ "bitflags 2.5.0", "bstr", @@ -871,9 +871,9 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6adf99c27cdf17b1c4d77680c917e0d94d8783d4e1c73d3be0d1d63107163d7a" +checksum = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575" dependencies = [ "fastrand", "gix-features", @@ -882,9 +882,9 @@ dependencies = [ [[package]] name = "gix-glob" -version = "0.16.4" +version = "0.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7df15afa265cc8abe92813cd354d522f1ac06b29ec6dfa163ad320575cb447" +checksum = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111" dependencies = [ "bitflags 2.5.0", "bstr", @@ -909,15 +909,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" dependencies = [ "gix-hash", - "hashbrown 0.14.5", + "hashbrown", "parking_lot", ] [[package]] name = "gix-ignore" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6afb8f98e314d4e1adc822449389ada863c174b5707cedd327d67b84dba527" +checksum = "e447cd96598460f5906a0f6c75e950a39f98c2705fc755ad2f2020c9e937fab7" dependencies = [ "bstr", "gix-glob", @@ -945,7 +945,7 @@ dependencies = [ "gix-traverse", "gix-utils", "gix-validate", - "hashbrown 0.14.5", + "hashbrown", "itoa", "libc", "memmap2", @@ -1036,9 +1036,9 @@ dependencies = [ [[package]] name = "gix-packetline-blocking" -version = "0.17.4" +version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31d42378a3d284732e4d589979930d0d253360eccf7ec7a80332e5ccb77e14a" +checksum = "b9802304baa798dd6f5ff8008a2b6516d54b74a69ca2d3a2b9e2d6c3b5556b40" dependencies = [ "bstr", "faster-hex", @@ -1048,9 +1048,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.9" +version = "0.10.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d23d5bbda31344d8abc8de7c075b3cf26e5873feba7c4a15d916bce67382bd9" +checksum = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" dependencies = [ "bstr", "gix-trace", @@ -1061,9 +1061,9 @@ dependencies = [ [[package]] name = "gix-pathspec" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d307d1b8f84dc8386c4aa20ce0cf09242033840e15469a3ecba92f10cfb5c046" +checksum = "5d23bf239532b4414d0e63b8ab3a65481881f7237ed9647bb10c1e3cc54c5ceb" dependencies = [ "bitflags 2.5.0", "bstr", @@ -1151,9 +1151,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1547d26fa5693a7f34f05b4a3b59a90890972922172653bcb891ab3f09f436df" +checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" dependencies = [ "bitflags 2.5.0", "gix-path", @@ -1192,9 +1192,9 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" +checksum = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" [[package]] name = "gix-traverse" @@ -1215,9 +1215,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.27.4" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2eb9b35bba92ea8f0b5ab406fad3cf6b87f7929aa677ff10aa042c6da621156" +checksum = "fd280c5e84fb22e128ed2a053a0daeacb6379469be6a85e3d518a0636e160c89" dependencies = [ "bstr", "gix-features", @@ -1276,12 +1276,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.14.5" @@ -1357,12 +1351,12 @@ dependencies = [ [[package]] name = "imara-diff" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8" +checksum = "fc9da1a252bd44cd341657203722352efc9bc0c847d06ea6d2dc1cd1135e0a01" dependencies = [ "ahash", - "hashbrown 0.12.3", + "hashbrown", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 5c4e6de..f1b27be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "gitql" authors = ["AmrDeveloper"] -version = "0.26.0" +version = "0.27.0" edition = "2021" description = "A SQL like query language to perform queries on .git files" license = "MIT" repository = "https://github.com/amrdeveloper/gql/" documentation = "https://github.com/amrdeveloper/gql" readme = "README.md" -keywords = ["cli", "gql", "language", "git", "sql"] +keywords = ["gitql", "gitql-sdk", "gql", "git", "sql"] categories = ["command-line-utilities"] exclude = [".github/**", "docs/**", "media/**", "scripts/**"] @@ -26,12 +26,12 @@ members = [ gix = { version = "0.64.0", default-features = false } [dependencies] -gitql-core = { path = "./crates/gitql-core", version = "0.3.0" } -gitql-std = { path = "./crates/gitql-std", version = "0.3.1" } -gitql-ast = { path = "./crates/gitql-ast", version = "0.23.1" } -gitql-parser = { path = "./crates/gitql-parser", version = "0.25.1" } -gitql-engine = { path = "./crates/gitql-engine", version = "0.26.0" } -gitql-cli = { path = "./crates/gitql-cli", version = "0.26.1" } +gitql-core = { path = "./crates/gitql-core", version = "0.4.0" } +gitql-std = { path = "./crates/gitql-std", version = "0.4.0" } +gitql-ast = { path = "./crates/gitql-ast", version = "0.24.0" } +gitql-parser = { path = "./crates/gitql-parser", version = "0.26.0" } +gitql-engine = { path = "./crates/gitql-engine", version = "0.27.0" } +gitql-cli = { path = "./crates/gitql-cli", version = "0.27.0" } gix = { workspace = true, features = ["blob-diff", "max-performance"] } atty = "0.2.14" diff --git a/crates/gitql-ast/Cargo.toml b/crates/gitql-ast/Cargo.toml index b4b38f6..b100f17 100644 --- a/crates/gitql-ast/Cargo.toml +++ b/crates/gitql-ast/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gitql-ast" authors = ["AmrDeveloper"] -version = "0.23.1" +version = "0.24.0" edition = "2021" description = "GitQL Abstract syntax tree (AST)" repository = "https://github.com/amrdeveloper/gql/tree/main/crates/gitql-ast" @@ -10,4 +10,4 @@ keywords = ["cli", "gql", "language", "git", "sql"] categories = ["command-line-utilities"] [dependencies] -gitql-core = { path = "../gitql-core", version = "0.3.0" } +gitql-core = { path = "../gitql-core", version = "0.4.0" } diff --git a/crates/gitql-cli/Cargo.toml b/crates/gitql-cli/Cargo.toml index de735ab..27b9362 100644 --- a/crates/gitql-cli/Cargo.toml +++ b/crates/gitql-cli/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gitql-cli" authors = ["AmrDeveloper"] -version = "0.26.1" +version = "0.27.0" edition = "2021" description = "GitQL Command line interface (CLI) components" repository = "https://github.com/amrdeveloper/gql/tree/main/crates/gitql-cli" @@ -10,8 +10,8 @@ keywords = ["cli", "gql", "language", "git", "sql"] categories = ["command-line-utilities"] [dependencies] -gitql-core = { path = "../gitql-core", version = "0.3.0" } -gitql-ast = { path = "../gitql-ast", version = "0.23.1" } -gitql-parser = { path = "../gitql-parser", version = "0.25.1" } +gitql-core = { path = "../gitql-core", version = "0.4.0" } +gitql-ast = { path = "../gitql-ast", version = "0.24.0" } +gitql-parser = { path = "../gitql-parser", version = "0.26.0" } comfy-table = "7.1.0" termcolor = "1.4.1" diff --git a/crates/gitql-core/Cargo.toml b/crates/gitql-core/Cargo.toml index 11617e0..1bbe569 100644 --- a/crates/gitql-core/Cargo.toml +++ b/crates/gitql-core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gitql-core" authors = ["AmrDeveloper"] -version = "0.3.0" +version = "0.4.0" edition = "2021" description = "GitQL Core components" repository = "https://github.com/amrdeveloper/gql/tree/main/crates/gitql-cli" diff --git a/crates/gitql-engine/Cargo.toml b/crates/gitql-engine/Cargo.toml index 76dfde8..e760c8e 100644 --- a/crates/gitql-engine/Cargo.toml +++ b/crates/gitql-engine/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gitql-engine" authors = ["AmrDeveloper"] -version = "0.26.0" +version = "0.27.0" edition = "2021" description = "GitQL Engine" repository = "https://github.com/amrdeveloper/gql/tree/main/crates/gitql-engine" @@ -10,7 +10,7 @@ keywords = ["cli", "gql", "language", "git", "sql"] categories = ["command-line-utilities"] [dependencies] -gitql-core = { path = "../gitql-core", version = "0.3.0" } -gitql-ast = { path = "../gitql-ast", version = "0.23.1" } +gitql-core = { path = "../gitql-core", version = "0.4.0" } +gitql-ast = { path = "../gitql-ast", version = "0.24.0" } regex = "1.10.4" chrono = "0.4.38" diff --git a/crates/gitql-parser/Cargo.toml b/crates/gitql-parser/Cargo.toml index ad6e703..e5fd555 100644 --- a/crates/gitql-parser/Cargo.toml +++ b/crates/gitql-parser/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gitql-parser" authors = ["AmrDeveloper"] -version = "0.25.1" +version = "0.26.0" edition = "2021" description = "GitQL parser" repository = "https://github.com/amrdeveloper/gql/tree/main/crates/gitql-parser" @@ -10,5 +10,5 @@ keywords = ["cli", "gql", "language", "git", "sql"] categories = ["command-line-utilities"] [dependencies] -gitql-core = { path = "../gitql-core", version = "0.3.0" } -gitql-ast = { path = "../gitql-ast", version = "0.23.0" } +gitql-core = { path = "../gitql-core", version = "0.4.0" } +gitql-ast = { path = "../gitql-ast", version = "0.24.0" } diff --git a/crates/gitql-std/Cargo.toml b/crates/gitql-std/Cargo.toml index bf61299..b96ca2f 100644 --- a/crates/gitql-std/Cargo.toml +++ b/crates/gitql-std/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gitql-std" authors = ["AmrDeveloper"] -version = "0.3.1" +version = "0.4.1" edition = "2021" description = "GitQL Standard and Aggregation functions" repository = "https://github.com/amrdeveloper/gql/tree/main/crates/gitql-cli" @@ -10,7 +10,7 @@ keywords = ["cli", "gql", "language", "git", "sql"] categories = ["command-line-utilities"] [dependencies] -gitql-core = { path = "../gitql-core", version = "0.3.0" } +gitql-core = { path = "../gitql-core", version = "0.4.0" } chrono = "0.4.38" regex = "1.10.4" rand = "0.8.5"