From 776f8d5322a761ea873cd5908411ed217a2eaae8 Mon Sep 17 00:00:00 2001 From: Kyrylo Simonov Date: Sun, 2 Aug 2026 16:31:24 -0500 Subject: [PATCH 1/3] Support OrderedCollections v2 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 89ef4d80..16377964 100644 --- a/Project.toml +++ b/Project.toml @@ -16,7 +16,7 @@ Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" DBInterface = "2.5" DataAPI = "1.13" LRUCache = "1.3" -OrderedCollections = "1.4" +OrderedCollections = "1.4, 2" PrettyPrinting = "0.3.2, 0.4" Tables = "1.6" julia = "1.6" From e6a0af5d7deea0159d5998e337a5fb21e819e504 Mon Sep 17 00:00:00 2001 From: Kyrylo Simonov Date: Sun, 2 Aug 2026 16:49:57 -0500 Subject: [PATCH 2/3] Bump the version number and update release notes. --- NEWS.md | 5 +++++ Project.toml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 064dd676..11bf4b1f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Release Notes +## v0.15.1 + +* Support OrderedCollections v2. + + ## v0.15.0 * **Breaking change:** when a query is used in a scalar context, such as diff --git a/Project.toml b/Project.toml index 16377964..ea69efb5 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "FunSQL" uuid = "cf6cc811-59f4-4a10-b258-a8547a8f6407" authors = ["Kirill Simonov ", "Clark C. Evans "] -version = "0.15.0" +version = "0.15.1" [deps] DBInterface = "a10d1c49-ce27-4219-8d33-6db1a4562965" From d896215b5dccaf431f9e53313166f41577a938ae Mon Sep 17 00:00:00 2001 From: Kyrylo Simonov Date: Sun, 2 Aug 2026 17:26:23 -0500 Subject: [PATCH 3/3] Make all referenced headers unique --- docs/src/guide/index.md | 4 ++-- docs/src/test/nodes.md | 40 ++++++++++++++++++++-------------------- docs/src/test/other.md | 8 ++++---- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/src/guide/index.md b/docs/src/guide/index.md index 63d59b8f..e9de6762 100644 --- a/docs/src/guide/index.md +++ b/docs/src/guide/index.md @@ -403,7 +403,7 @@ The following tabular operations are available in FunSQL. | [`With`](@ref) | assign a name to a temporary dataset | -## `From`, `Select`, and `Define` +## Using `From`, `Select`, and `Define` The [`From`](@ref) node outputs the content of a database table. The constructor takes one argument, the name of the table. @@ -539,7 +539,7 @@ To add a new column while preserving existing output columns, we use the =# -## `Join` +## Using `Join` The [`Join`](@ref) node correlates the rows of two input datasets. Predominantly, `Join` is used for looking up table records by key. In the diff --git a/docs/src/test/nodes.md b/docs/src/test/nodes.md index 32a44cf2..b5817bab 100644 --- a/docs/src/test/nodes.md +++ b/docs/src/test/nodes.md @@ -94,7 +94,7 @@ Ill-formed queries are detected. =# -## `@funsql` +## `@funsql` Tests The `@funsql` macro provides alternative notation for specifying FunSQL queries. @@ -289,7 +289,7 @@ An ill-formed `@funsql` query triggers an error. =# -## Literals +## Tests for Literals A SQL value is created with `Lit()` constructor. @@ -334,7 +334,7 @@ Such plain literals could also be used in `@funsql` notation. =# -## Attributes +## Tests for Attributes To reference a table attribute, we use the `Get` constructor. @@ -810,7 +810,7 @@ column. =# -## Functions and Operators +## Tests for Functions and Operators A function or an operator invocation is created with the `Fun` constructor. @@ -1190,7 +1190,7 @@ FunSQL can simplify logical expressions. =# -## Scalar Subqueries +## Tests for Scalar Subqueries In SQL, a scalar expression may contain a subquery. This subquery should select one column and should produce zero or one row (unless used as an argument of @@ -1307,7 +1307,7 @@ If no columns are selected, a column containing `NULL` is added. =# -## Variables +## Tests for Variables A query variable is created with the `Var` constructor. @@ -1465,7 +1465,7 @@ An empty `Bind` can be created. =# -## `Append` +## Tests for `Append` The `Append` constructor creates a subquery that concatenates the output of multiple queries. @@ -1730,7 +1730,7 @@ columns of the nested queries. =# -## `Iterate` +## Tests for `Iterate` The `Iterate` constructor creates an iteration query. In the argument of `Iterate`, the `From(^)` node refers to the output of the previous iteration. @@ -1929,7 +1929,7 @@ produced by the base query and the iterator query. =# -## `As` +## Tests for `As` An alias to an expression can be added with the `As` constructor. @@ -1981,7 +1981,7 @@ The `=>` shorthand is supported by `@funsql`. =# -## `From` +## Tests for `From` The `From` constructor creates a subquery that selects columns from the given table. @@ -2264,7 +2264,7 @@ All the columns of a tabular function must have distinct names. =# -## `With`, `Over`, and `WithExternal` +## Tests for `With`, `Over`, and `WithExternal` We can create a temporary dataset using `With` and refer to it with `From`. @@ -2564,7 +2564,7 @@ Datasets defined by `WithExternal` must have a unique label. =# -## `Group` +## Tests for `Group` The `Group` constructor creates a subquery that summarizes the rows partitioned by the given keys. @@ -3027,7 +3027,7 @@ corresponding `Group` could be determined unambiguously. =# -## `Partition` +## Tests for `Partition` The `Partition` constructor creates a subquery that partitions the rows by the given keys. @@ -3267,7 +3267,7 @@ example which calculates non-overlapping visits. =# -## `Join` +## Tests for `Join` The `Join` constructor creates a subquery that correlates two nested subqueries. @@ -3638,7 +3638,7 @@ its right branch. =# -## `Order` +## Tests for `Order` The `Order` constructor creates a subquery for sorting the data. @@ -3801,7 +3801,7 @@ Sort decorations can be created with `@funsql`. =# -## `Limit` +## Tests for `Limit` The `Limit` constructor creates a subquery that takes a fixed-size slice of the dataset. @@ -3945,7 +3945,7 @@ A `Limit` node can be created with `@funsql` notation. =# -## `Select` +## Tests for `Select` The `Select` constructor creates a subquery that fixes the output columns. @@ -4007,7 +4007,7 @@ creates a complete subquery. =# -## `Where` +## Tests for `Where` The `Where` constructor creates a subquery that filters by the given condition. @@ -4132,7 +4132,7 @@ Several `Where` operations in a row are collapsed to a single `WHERE` clause. =# -## Highlighting +## Tests for Highlighting To highlight a node on the output, wrap it with `Highlight`. @@ -4178,7 +4178,7 @@ A `Highlight` node can be created with `@funsql` notation. =# -## Debugging +## Tests for Debug Logging Enable debug logging to get some insight on how FunSQL translates a query object into SQL. Set the `JULIA_DEBUG` environment variable to the name of diff --git a/docs/src/test/other.md b/docs/src/test/other.md index c1bf6611..5a35dde7 100644 --- a/docs/src/test/other.md +++ b/docs/src/test/other.md @@ -1,7 +1,7 @@ # Other Tests -## `SQLConnection` and `SQLStatement` +## Tests for `SQLConnection` and `SQLStatement` A `SQLConnection` object encapsulates a raw database connection together with the database catalog. @@ -66,7 +66,7 @@ by name. DBInterface.close!(conn) -## `SQLCatalog`, `SQLTable`, and `SQLColumn` +## Tests for `SQLCatalog`, `SQLTable`, and `SQLColumn` In FunSQL, tables and table-like entities are represented using `SQLTable` objects. Their columns are represented using `SQLColumn` objects. @@ -301,7 +301,7 @@ FunSQL metadata supports DataAPI metadata interface. #-> "Person ID" -## `SQLDialect` +## Tests for `SQLDialect` In FunSQL, properties and capabilities of a particular SQL dialect are encapsulated in a `SQLDialect` object. @@ -343,7 +343,7 @@ A completely custom dialect can be specified. #-> SQLDialect(name = :my, identifier_quotes = ('<', '>')) -## `SQLString` +## Tests for `SQLString` `SQLString` represents a serialized SQL query.