Skip to content

Releases: PRQL/prql

0.13.2

11 Oct 23:20
d86211d
Compare
Choose a tag to compare

0.13.2 is a tiny release to fix an issue publishing 0.13.1 to Crates.io

0.13.1

11 Oct 16:40
c8d0025
Compare
Choose a tag to compare

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 through prqlc 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

25 Jul 17:27
4c1ccb7
Compare
Choose a tag to compare

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 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-parserprqlc-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)

  • New benchmarks (@max-sixty, #4654)

New Contributors:

0.12.2

10 Jun 06:31
f283f9d
Compare
Choose a tag to compare

0.12.2 is a very small release which renames prql-js to prqlc-js to match our standard naming scheme. Within node the package is imported as prqlc.

It also fixes a mistake in the prqlc-python release pipeline.

0.12.1

09 Jun 01:03
f439a8f
Compare
Choose a tag to compare

0.12.1 is a tiny hotfix release which fixes how intra-prql crate dependencies were specified.

0.12.0

08 Jun 23:14
f718695
Compare
Choose a tag to compare

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 {} and std (@m-span, #4538)

Web:

  • The browser dist files are now built with wasm-pack's web target. As a result, they should be usable as ES Modules, through JS CDNs, and for example with Observable Framework (@srenatus, #4274).

Integrations:

New Contributors:

0.11.4

26 Feb 04:45
d94610e
Compare
Choose a tag to compare

0.11.4 is a hotfix release, fixing a CI issue that caused the CLI binaries to be built without the cli feature.

0.11.3

11 Feb 03:46
210107d
Compare
Choose a tag to compare

0.11.3 is a very small release, mostly a rename of the python bindings.

The release has 13 commits from 4 contributors.

0.11.2

08 Feb 00:36
db7165c
Compare
Choose a tag to compare

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:

Fixes:

Integrations:

Internal changes:

  • prql-compiler has been renamed to prqlc, and we've established a more consistent naming scheme. The existing crate will still be published, re-exporting prqlc, so no dependencies will break. A future version will add a deprecation warning.
  • The prqlc-clib crate was renamed to prqlc-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:

0.11.1

26 Dec 17:53
7500343
Compare
Choose a tag to compare

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 the prql_version function is renamed to the prql.version function. The old prql_version function is deprecated and will be removed in the future release. (@eitsupi, #4006)

Fixes:

  • Do not compile to DISTINCT ON when take n is used with group for the targets clickhouse, duckdb and postgres. (@PrettyWood, #3988)
  • Fix take n rows for mssql dialect by switching from TOP to FETCH (@PrettyWood, #3994)