0.13.0 brings a new debug logging framework, a big refactor of the parser, a new highlighter, an ** operator for exponentiation, a few bug fixes, and lots of other changes. It has 153 commits from 11 contributors.
Our work continues on rewriting the resolver and completing prqlc fmt.
Selected changes:
Language:
Parentheses are always required around pipelines, even within tuples. For example:
from artists
# These parentheses are now required
derive {a=(b | math.abs)}
# No change — doesn't affect expressions or function calls without pipelines
derive {x = 3 + 4}
This is a small breaking change. The new behavior matches the existing documentation. (@max-sixty, #4775)
prqlc compile --debug-log=log.html will generate an HTML file with a detailed log of the compilation process. (@aljazerzen, #4646)
Added prqlc debug json-schema command to auto-generate JSON Schema representations of commonly exposed IR types such as PL and RQ. (@kgutwin, #4698)
Add documentation comments to the output of the documentation generator. (@vanillajonathan, #4729)
Add CLI syntax highlighting to prqlc. You can try it as prqlc experimental highlight example.prql. (@vanillajonathan, #4755)
Fixes:
Using in with an empty array pattern (e.g. expr | in []) will now output a constant false condition instead of an expr IN (), which is syntactically invalid in some SQL dialects (@Globidev, #4598)
Integrations:
The Snap package previously released on the edge channel is now released on the stable channel. (@vanillajonathan, #4784)
Internal changes:
Major reorganization of prqlc-parser — prqlc-ast is merged into prqlc-parser, and prqlc-parser's files are rearranged, including its exports. This is part of an effort to modularize the compiler by stage, reducing the amount of context that's required to understand a single stage. There will likely be some further changes (more detail in the PR description). (@m-span, #4634)
This is a breaking change for any libraries that depend on prqlc-parser (which should be fairly rare).
Renamed prql-compiler-macros to prqlc-macros for consistency with other crates (@max-sixty, #4565)
prql-compiler, the old name for prqlc, is removed as a facade to prqlc. It had been deprecated for a few versions and will no longer be updated. (@max-sixty)
0.13.0 brings a new debug logging framework, a big refactor of the parser, a new
highlighter, an ** operator for exponentiation, a few bug fixes, and lots of
other changes. It has 153 commits from 11 contributors.
Our work continues on rewriting the resolver and completing prqlc fmt.
Selected changes:
Language:
Parentheses are always required around pipelines, even within tuples. For
example:
from artists
# These parentheses are now required
derive {a=(b | math.abs)}
# No change — doesn't affect expressions or function calls without pipelines
derive {x = 3 + 4}
This is a small breaking change. The new behavior matches the existing
documentation. (@max-sixty, #4775)
prqlc compile --debug-log=log.html will generate an HTML file with a
detailed log of the compilation process. (@aljazerzen, #4646)
Added prqlc debug json-schema command to auto-generate JSON Schema
representations of commonly exposed IR types such as PL and RQ. (@kgutwin,
#4698)
Add documentation comments to the output of the documentation generator.
(@vanillajonathan, #4729)
Add CLI syntax highlighting to prqlc. You can try it as
prqlc experimental highlight example.prql. (@vanillajonathan, #4755)
Fixes:
Using in with an empty array pattern (e.g. expr | in []) will now output a
constant false condition instead of an expr IN (), which is syntactically
invalid in some SQL dialects (@Globidev, #4598)
Integrations:
The Snap package previously released on the edge channel is now released on
the stable channel. (@vanillajonathan, #4784)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps prqlc from 0.12.2 to 0.13.0.
Release notes
Sourced from prqlc's releases.
... (truncated)
Changelog
Sourced from prqlc's changelog.
... (truncated)
Commits
4c1ccb7
docs: 0.13.0 Changelog (#4785)9539f69
chore: bump mocha from 10.6.0 to 10.7.0 in /prqlc/bindings/js (#4761)7d3f289
chore: bump mocha from 10.5.1 to 10.6.0 in /prqlc/bindings/js (#4694)59fb3cc
ci: Speed up benchmarks in CI (#4692)d91851b
chore: bump mocha from 10.4.0 to 10.5.1 in /prqlc/bindings/js (#4674)eb6fbda
chore: bump braces from 3.0.2 to 3.0.3 in /prqlc/bindings/js (#4593)6b4c438
chore: Bump version to 0.12.3 (#4580)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show