Querio.Language
0.1.0
dotnet add package Querio.Language --version 0.1.0
NuGet\Install-Package Querio.Language -Version 0.1.0
<PackageReference Include="Querio.Language" Version="0.1.0" />
<PackageVersion Include="Querio.Language" Version="0.1.0" />
<PackageReference Include="Querio.Language" />
paket add Querio.Language --version 0.1.0
#r "nuget: Querio.Language, 0.1.0"
#:package Querio.Language@0.1.0
#addin nuget:?package=Querio.Language&version=0.1.0
#tool nuget:?package=Querio.Language&version=0.1.0
Querio.Language
Reads and writes a Querio query as SQL-shaped text, with completion for an editor.
select [r].[route], [r].[apiKeyId].[name] as [key], count(*) as [total]
from [dbo].[RequestLog] as [r]
where [r].[timestamp] >= now - 30 day and [r].[error] = true
group by [r].[route], [r].[apiKeyId].[name]
order by [total] desc
limit 20
It looks like SQL because that is what people already know, and it is not SQL: [r].[apiKeyId].[name]
walks a foreign key, to any depth. Each hop becomes a join, which the target then renders however
suits it. The joins are outer, because travelling a key that happens to be empty must not make the
row disappear.
Nothing stops at the first mistake. Every problem comes back with the exact span it occupies, plus whatever query could still be built from the rest - which is what an editor needs while somebody is halfway through a line:
var result = QueryLanguage.Read(text, schema);
result.Spec; // the partial query
result.Diagnostics; // every problem, each with Start/Length/Message
QueryCompletion.Suggest(text, caret, schema); // what may be written next
Entity and field names are accepted both logically and physically, and the spec stores the logical one, so the text stays portable.
Targets netstandard2.0, net8.0, net9.0, net10.0. Depends only on Querio.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Querio.Language:
| Package | Downloads |
|---|---|
|
Flare.Components.Query
A visual query designer for Flare, built on the Querio query model. Composes joins, aggregates, grouping, conditions and paging over a caller-supplied schema, and emits a serializable query spec that the consumer renders or executes however it likes. |
GitHub repositories
This package is not used by any popular GitHub repositories.