Releases: PRQL/prql
0.13.2
0.13.1
0.13.1 is a small release containing a few bug fixes and improvements. Velocity has slowed down a bit in recent months, we're still hoping to finish the new resolver and the new formatter in the near future.
It has 97 commits from 10 contributors. Selected changes:
Features:
-
Add a option to the experimental documentation generator to output the docs in HTML format. The option is given using the
--format=html
option. (@vanillajonathan, 4791) -
The version of the library is now read from
git describe
. This doesn't affect libraries built on git tags (such as our releases), only those built when developing. When reporting bugs, this helps identify the exact version. (@max-sixty & @m-span, #4804)
Fixes:
-
Raw strings (
r"..."
) are retained throughprqlc fmt
(@max-sixty, #4848) -
Strings containing an odd contiguous number of quotes are now delimited by an odd number of quotes when being formatted. The previous implementation would use an even number, which is invalid PRQL. (@max-sixty, #4850)
-
A few more keywords are quoted, such as
user
, which is a reserved keyword in PostgreSQL. (@max-sixty)
0.13.0
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)
-
A new
**
operator for exponentiation. (@aljazerzen & @max-sixty, #4125)
Features:
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 asprqlc experimental highlight example.prql
. (@vanillajonathan, #4755)
Fixes:
- Using
in
with an empty array pattern (e.g.expr | in []
) will now output a constantfalse
condition instead of anexpr 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 intoprqlc-parser
, andprqlc-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).
- This is a breaking change for any libraries that depend on
-
Renamed
prql-compiler-macros
toprqlc-macros
for consistency with other crates (@max-sixty, #4565) -
prql-compiler
, the old name forprqlc
, is removed as a facade toprqlc
. It had been deprecated for a few versions and will no longer be updated. (@max-sixty) -
New benchmarks (@max-sixty, #4654)
New Contributors:
0.12.2
0.12.1
0.12.0
0.12.0 contains a few months of smaller features. Our focus has been on rewriting the resolver, an effort that is still ongoing. It has 239 commits from 12 contributors.
Selected changes (most are not listed here, possibly we should be more conscientious about adding them...):
Features:
- Add
prqlc lex
command to the CLI (@max-sixty) - Add
prqlc debug lineage
command to the CLI, creating an expression lineage graph from a query (@kgutwin, #4533) - Initial implementation of an experimental documentation generator that generates Markdown documentation from
.prql
files. (@vanillajonathan, #4152). - Join's
side
parameter can take a reference that resolves to a literal (note: this is an experimental feature which may change in the future) (@kgutwin, #4499)
Fixes:
- Support expressions on left hand side of
std.in
operator. (@kgutwin, #4498) - Prevent panic for
from {}
andstd
(@m-span, #4538)
Web:
- The
browser
dist files are now built withwasm-pack
'sweb
target. As a result, they should be usable as ES Modules, through JS CDNs, and for example with Observable Framework (@srenatus, #4274).
Integrations:
- The syntax highlighter package for Sublime Text is now published (@vanillajonathan).
- The VSCode Great Icons icon pack extension shows a database icon for
.prql
files. (@EmmanuelBeziat) - Tokei, a source lines of code counter now has support for
.prql
files. (@vanillajonathan) - Add syntax highlight file for the micro text editor. (@vanillajonathan)
New Contributors:
0.11.4
0.11.3
0.11.2
0.11.2 — 2023-02-07
0.11.2 contains lots of internal changes, lots of syntax highlighting, and the beginning of lutra
, a query runner.
This release has 122 commits from 9 contributors. Selected changes include:
Features:
- Initial implementation of
lutra
, a query runner. (@aljazerzen, #4182, #4174, #4134) prqlc fmt
works on projects with multiple files. (@max-sixty, #4028)
Fixes:
- Reduce stack memory usage (@aljazerzen, #4103)
Integrations:
- Add syntax highlight file for GtkSourceView. (@vanillajonathan, #4062)
- Add syntax highlight file for CotEditor. (@vanillajonathan)
- Add syntax highlight file for Sublime Text. (@vanillajonathan, #4127)
- sloc, a source lines of code counter now has support for
.prql
files. (@vanillajonathan)
Internal changes:
prql-compiler
has been renamed toprqlc
, and we've established a more consistent naming scheme. The existing crate will still be published, re-exportingprqlc
, so no dependencies will break. A future version will add a deprecation warning.- The
prqlc-clib
crate was renamed toprqlc-c
, and associated artifacts were renamed. We're trying to make names consistent (ideally for the final time!), and have a plan to rename some other bindings. (@max-sixty, #4077) - Add lots of whitespace items to the lexer, in preparation for the completion of
prqlc fmt
(@max-sixty, #4109, #4105) - Table declarations (@aljazerzen, #4126)
New Contributors:
- @kaspermarstal, with #4124
0.11.1
0.11.1 fixes a couple of small bugs; it comes a few days after 0.11.
This release has 16 commits from 6 contributors. Selected changes:
Features:
- Infer the type of array literals to be the union of types of its items. (@aljazerzen, #3989)
prql
module is added and theprql_version
function is renamed to theprql.version
function. The oldprql_version
function is deprecated and will be removed in the future release. (@eitsupi, #4006)
Fixes:
- Do not compile to
DISTINCT ON
whentake n
is used withgroup
for the targetsclickhouse
,duckdb
andpostgres
. (@PrettyWood, #3988) - Fix
take
n rows formssql
dialect by switching from TOP to FETCH (@PrettyWood, #3994)