Skip to content
This repository was archived by the owner on Oct 6, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
179878c
init
quinchs Jun 21, 2022
83db034
node context and more work
quinchs Jun 21, 2022
c4a4a41
more work on qb
quinchs Jun 22, 2022
55ce7ba
more query builder work
quinchs Jun 25, 2022
8cecb67
Alot more work on the query builder
quinchs Jun 26, 2022
3793c87
Merge branch 'dev' into feat/querybuilder-v2
quinchs Jun 27, 2022
578a74b
janky sub queries & schema introspection
quinchs Jun 27, 2022
df99871
fix exposed internal method
quinchs Jun 27, 2022
2112166
document the query builder
quinchs Jun 27, 2022
310f93d
fix bug with introspect in insert nodes
quinchs Jun 27, 2022
03ebbe2
more query builder work (close to first RC :D)
quinchs Jul 3, 2022
ac8df85
remove test code
quinchs Jul 3, 2022
0d53c55
QB demo and global ref reuse in queries
quinchs Jul 5, 2022
815ad50
remove newline
quinchs Jul 6, 2022
5ed7762
fix property access instance in insert node
quinchs Jul 8, 2022
2e86eaa
Multi links
quinchs Jul 10, 2022
dad0f40
backlinks
quinchs Jul 11, 2022
b35f545
backlink in demo
quinchs Jul 11, 2022
5ae22c6
free objects & dotnet array set initializer translator
quinchs Jul 11, 2022
74c53fd
internal documentation & minor refactor
quinchs Jul 12, 2022
1db4807
add readme to qb project
quinchs Jul 12, 2022
b4d47c6
Fix multi link null type
quinchs Jul 14, 2022
cc54d0f
FOR operator support
quinchs Jul 14, 2022
a8db46f
Fix bugs with json depth mapping and sub-iterated-inserts
quinchs Jul 14, 2022
ad4118a
"Working" for iterator, see https://github.com/edgedb/edgedb/issues/4090
quinchs Jul 16, 2022
9bf3bcd
Method translators. blocked by https://github.com/edgedb/edgedb/issue…
quinchs Jul 18, 2022
39b4967
add qb to myget feed
quinchs Jul 18, 2022
6379652
add querybuilder branch as target for pre-release action
quinchs Jul 18, 2022
3c1a5b9
fix query builder csproj file
quinchs Jul 18, 2022
7fee530
fix pipeline build errors
quinchs Jul 18, 2022
55f1fc2
expose capability bitfield for executing queries
quinchs Jul 18, 2022
92682dd
Fix multi link operators
quinchs Jul 19, 2022
114366b
Add capabilities to json methods
quinchs Jul 19, 2022
4ee5526
fix pipeline build errors
quinchs Jul 20, 2022
a51afba
Allow dynamic type passthru for deserialization
quinchs Jul 20, 2022
4bc36b4
Merge branch 'dev' into feat/querybuilder-v2
quinchs Jul 20, 2022
924b76b
Merge branch 'dev' into feat/querybuilder-v2
quinchs Jul 26, 2022
d105b58
unit test framework
quinchs Jul 26, 2022
9fc2159
contextual method invoking within expressions
quinchs Jul 26, 2022
07bad94
init of v2 generator for stdlib
quinchs Jul 26, 2022
85c03bd
fix a few bugs
quinchs Jul 30, 2022
3d275f3
whoops selects are pre-fixed not post-fixed :D
quinchs Jul 30, 2022
9012f23
override default select logic for delete node
quinchs Jul 30, 2022
0953b13
reverse type lookup
quinchs Jul 31, 2022
b4e61fe
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 2, 2022
baf0610
fix merge errors
quinchs Aug 2, 2022
036ce45
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 2, 2022
0f90b9b
fix annotation writer
quinchs Aug 2, 2022
20f5a3c
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 3, 2022
63a8f9c
add finalizer delegate summary
quinchs Aug 3, 2022
36c0a30
More work on STDLIB generator
quinchs Aug 3, 2022
082610e
Fix member initialization translators
quinchs Aug 5, 2022
f890617
add variac pointer resolution for member access
quinchs Aug 6, 2022
a4ffa7d
more work on func generator
quinchs Aug 6, 2022
5847b9e
Add support for object level constraints and code cleanup
quinchs Aug 7, 2022
42ad2f1
fix constraint generator
quinchs Aug 9, 2022
bfcbbfc
add missing summary
quinchs Aug 9, 2022
b4733e6
more std lib generation work
quinchs Aug 9, 2022
baff433
fix update not having setters
quinchs Aug 10, 2022
66a632b
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 10, 2022
fadb080
fix nullability errors
quinchs Aug 10, 2022
4072925
Move IQueryBuilder interface
quinchs Aug 10, 2022
a4fcdf8
initial group api
quinchs Aug 10, 2022
c9e0006
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 11, 2022
4e16eda
fix for iterator throwing exceptions
quinchs Aug 14, 2022
57af090
fix missing param in summary
quinchs Aug 15, 2022
0653065
Fix some bugs with FOR and WITH node
quinchs Aug 15, 2022
bc367e1
Implement #22
quinchs Aug 17, 2022
734ac58
contextual with statements
quinchs Aug 17, 2022
e386504
fix summaries
quinchs Aug 17, 2022
245ac7e
update example 'with'
quinchs Aug 17, 2022
4f7369b
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 17, 2022
81be5b0
Add introspection for value types on insert shapes
quinchs Aug 19, 2022
7d1c049
add serialization strategies for WITH blocks
quinchs Aug 19, 2022
d2b48ce
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 31, 2022
5d664ac
different approach for array_agg
quinchs Aug 31, 2022
519590f
fix for iterator to remove array_agg
quinchs Aug 31, 2022
937baf1
Merge branch 'dev' into feat/querybuilder-v2
quinchs Aug 31, 2022
e7451f8
add json variable pathing. Closes #27
quinchs Aug 31, 2022
1604eee
Fix serialization of wrong reference
quinchs Aug 31, 2022
3d3dff6
fix example
quinchs Aug 31, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 7 additions & 3 deletions .github/workflows/deploy-prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: NuGet Deploy (Prerelease)

on:
push:
branches: [ dev ]
branches: [ dev, feat/querybuilder-v2 ]

env:
BuildNumber: "${{ github.run_number }}"
Expand All @@ -19,9 +19,13 @@ jobs:
include-prerelease: true
- name: Install dependencies
run: dotnet restore
- name: Build
- name: Build Driver
run: dotnet build src/EdgeDB.Net.Driver/EdgeDB.Net.Driver.csproj --configuration Release --no-restore
- name: Pack
- name: Build Query Builder
run: dotnet build src/EdgeDB.Net.QueryBuilder/EdgeDB.Net.QueryBuilder.csproj --configuration Release --no-restore
- name: Pack Driver
run: dotnet pack src/EdgeDB.Net.Driver/EdgeDB.Net.Driver.csproj -c Release -o ./artifacts --no-build
- name: Pack QueryBuilder
run: dotnet pack src/EdgeDB.Net.QueryBuilder/EdgeDB.Net.QueryBuilder.csproj -c Release -o ./artifacts --no-build
- name: Upload
run: dotnet nuget push ./artifacts/*.nupkg --api-key ${{ secrets.NUGET_KEY }} --source https://www.myget.org/F/edgedb-net/api/v2/package
14 changes: 14 additions & 0 deletions EdgeDB.Net.sln
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EdgeDB.Serializer.Experimen
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EdgeDB.Examples.ExampleTODOApi", "examples\EdgeDB.Examples.ExampleTODOApi\EdgeDB.Examples.ExampleTODOApi.csproj", "{E38429C6-53A5-4311-8189-1F78238666DC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EdgeDB.Tests.QueryBuilder.Unit", "tests\EdgeDB.Tests.QueryBuilder.Unit\EdgeDB.Tests.QueryBuilder.Unit.csproj", "{69285B60-7817-4DBE-83CF-0C15ED825721}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EdgeDB.QueryBuilder.StandardLibGenerator", "tools\EdgeDB.QueryBuilder.StandardLibGenerator\EdgeDB.QueryBuilder.StandardLibGenerator.csproj", "{48C73144-9A14-442D-BFCE-C010CC017972}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -85,6 +89,14 @@ Global
{E38429C6-53A5-4311-8189-1F78238666DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E38429C6-53A5-4311-8189-1F78238666DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E38429C6-53A5-4311-8189-1F78238666DC}.Release|Any CPU.Build.0 = Release|Any CPU
{69285B60-7817-4DBE-83CF-0C15ED825721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{69285B60-7817-4DBE-83CF-0C15ED825721}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69285B60-7817-4DBE-83CF-0C15ED825721}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69285B60-7817-4DBE-83CF-0C15ED825721}.Release|Any CPU.Build.0 = Release|Any CPU
{48C73144-9A14-442D-BFCE-C010CC017972}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48C73144-9A14-442D-BFCE-C010CC017972}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48C73144-9A14-442D-BFCE-C010CC017972}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48C73144-9A14-442D-BFCE-C010CC017972}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -101,6 +113,8 @@ Global
{3A4AAAA0-9948-43D3-B838-8EFAC130240C} = {67ED9EF0-7828-44C0-8CB0-DEBD69EC94CA}
{6FA68DEA-D398-4A5B-8025-5F15C728F04C} = {49B6FB80-A675-4ECA-802C-2337A4F37566}
{E38429C6-53A5-4311-8189-1F78238666DC} = {6FC214F5-C912-4D99-91B1-3E9F52A4E11B}
{69285B60-7817-4DBE-83CF-0C15ED825721} = {E6B9FABC-241B-4561-9A94-E67B6BE380E2}
{48C73144-9A14-442D-BFCE-C010CC017972} = {67ED9EF0-7828-44C0-8CB0-DEBD69EC94CA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4E90C94F-D693-4411-82F3-2051DE1BE052}
Expand Down
41 changes: 40 additions & 1 deletion dbschema/default.esdl
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ module default {
constraint exclusive;
}
}
type ArrayPerson {
required property name -> str;
required property roles -> array<str>;
required property email -> str {
constraint exclusive;
}
}

# for example todo app
scalar type State extending enum<NotStarted, InProgress, Complete>;
Expand All @@ -39,4 +46,36 @@ module default {
type OtherThing extending AbstractThing {
required property attribute -> str;
}
}

# for query builder
type LinkPerson {
required property name -> str;
required property email -> str {
constraint exclusive;
}
link best_friend -> LinkPerson;
}

type MultiLinkPerson {
required property name -> str;
required property email -> str {
constraint exclusive;
}
multi link best_friends -> MultiLinkPerson;
}

type ConstraintPerson {
required property name -> str;
required property email -> str;

constraint exclusive on ((.name, .email));
}
type PropertyConstraintPerson {
required property name -> str{
constraint exclusive;
}
required property email -> str {
constraint exclusive;
}
}
}
2 changes: 1 addition & 1 deletion dbschema/migrations/00001.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ CREATE MIGRATION m1gajj2cjvikxjfhwnczhcfrcdlycg5pbg7vvehuaohazd2ltajlnq
CREATE PROPERTY email -> std::str;
CREATE PROPERTY name -> std::str;
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00002.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ CREATE MIGRATION m1vqxxs4ie4so3x35nk2wyu3jy3hmolscpyxu6bccucaofjtnrtj3a
CREATE CONSTRAINT std::exclusive;
};
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00003.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ CREATE MIGRATION m1tpouzupcrd2nkhl45qsdykw3dzjbk4ecndr73tmatxskaxkixu3q
SET REQUIRED USING ('e');
};
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00004.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ CREATE MIGRATION m1xp6ukrooc4chjfnhmaky4ywsoip5wvbz4ffm36tsqosspiyqjy6q
CREATE CONSTRAINT std::exclusive;
};
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00005.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ CREATE MIGRATION m1rgfzvgm77nvwkjt5i4hw3ruxtxoed4osu2hv7uj6huagohxxuu2q
CREATE REQUIRED PROPERTY state -> default::State;
CREATE REQUIRED PROPERTY title -> std::str;
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00006.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ CREATE MIGRATION m1bthirxb7a7lq7mjtrdjsxdcjcy4or3tlprzh74azy44h7n3re6zq
SET default := (std::datetime_current());
};
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00007.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ CREATE MIGRATION m1dntdma2rrziv35tbt7mfl7qeg3wpzaqk73edwaw5i4kkz5fg6z6a
CREATE TYPE default::Thing EXTENDING default::AbstractThing {
CREATE REQUIRED PROPERTY description -> std::str;
};
};
};
2 changes: 1 addition & 1 deletion dbschema/migrations/00008.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ CREATE MIGRATION m1isiclyxqa32luj6hdazr4mft2mvvq4tmmuoygl7m7k2iimxm5y3a
CREATE CONSTRAINT std::exclusive;
};
};
};
};
25 changes: 25 additions & 0 deletions dbschema/migrations/00010.edgeql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
CREATE MIGRATION m1um3yt7qj7ewz7tlflovxejbnkefpq2he5fwfvms2ucodqo5rupfq
ONTO m1yp62tfavybznmg6ywpi7xkbf77ue7ezaubpye7btyv2pco4okf7q
{
CREATE TYPE default::ArrayPerson {
CREATE REQUIRED PROPERTY email -> std::str {
CREATE CONSTRAINT std::exclusive;
};
CREATE REQUIRED PROPERTY name -> std::str;
CREATE REQUIRED PROPERTY roles -> array<std::str>;
};
CREATE TYPE default::LinkPerson {
CREATE LINK best_friend -> default::LinkPerson;
CREATE REQUIRED PROPERTY email -> std::str {
CREATE CONSTRAINT std::exclusive;
};
CREATE REQUIRED PROPERTY name -> std::str;
};
CREATE TYPE default::MultiLinkPerson {
CREATE MULTI LINK best_friends -> default::MultiLinkPerson;
CREATE REQUIRED PROPERTY email -> std::str {
CREATE CONSTRAINT std::exclusive;
};
CREATE REQUIRED PROPERTY name -> std::str;
};
};
9 changes: 9 additions & 0 deletions dbschema/migrations/00011.edgeql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CREATE MIGRATION m1ekxv5ihvbr5g5v6um2ubsoonwunr6u2l3nzfup2pmjgcxvpzamlq
ONTO m1um3yt7qj7ewz7tlflovxejbnkefpq2he5fwfvms2ucodqo5rupfq
{
CREATE TYPE default::ConstraintPerson {
CREATE REQUIRED PROPERTY email -> std::str;
CREATE REQUIRED PROPERTY name -> std::str;
CREATE CONSTRAINT std::exclusive ON ((.name, .email));
};
};
12 changes: 12 additions & 0 deletions dbschema/migrations/00012.edgeql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CREATE MIGRATION m1mqksv77zeiafcinnoo4ppb4gpoxchrogef3etb6altobsj72qvca
ONTO m1ekxv5ihvbr5g5v6um2ubsoonwunr6u2l3nzfup2pmjgcxvpzamlq
{
CREATE TYPE default::PropertyConstraintPerson {
CREATE REQUIRED PROPERTY email -> std::str {
CREATE CONSTRAINT std::exclusive;
};
CREATE REQUIRED PROPERTY name -> std::str {
CREATE CONSTRAINT std::exclusive;
};
};
};
168 changes: 168 additions & 0 deletions dbschema/migrations/00013.edgeql
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
CREATE MIGRATION m1pnpccusnd6k465bvotfp64pgkmrsas3sbunubc2t2k2r3b3vp6va
ONTO m1mqksv77zeiafcinnoo4ppb4gpoxchrogef3etb6altobsj72qvca
{
CREATE MODULE syzuna IF NOT EXISTS;
CREATE ABSTRACT TYPE syzuna::Auditable {
CREATE REQUIRED PROPERTY created_at -> std::datetime {
SET default := (std::datetime_of_statement());
SET readonly := true;
};
CREATE REQUIRED PROPERTY updated_at -> std::datetime {
SET default := (std::datetime_of_statement());
};
};
CREATE TYPE syzuna::Conflict EXTENDING syzuna::Auditable {
CREATE REQUIRED PROPERTY conflict_type -> std::str;
CREATE REQUIRED PROPERTY faction1_name -> std::str;
CREATE REQUIRED PROPERTY faction1_stake -> std::str;
CREATE REQUIRED PROPERTY faction1_won_days -> std::int16;
CREATE REQUIRED PROPERTY faction2_name -> std::str;
CREATE REQUIRED PROPERTY faction2_stake -> std::str;
CREATE REQUIRED PROPERTY faction2_won_days -> std::int16;
CREATE REQUIRED PROPERTY status -> std::str;
};
CREATE SCALAR TYPE syzuna::Happiness EXTENDING enum<Elated, Happy, Discontented, Unhappy, Despondent, Unknown>;
CREATE TYPE syzuna::BgsData EXTENDING syzuna::Auditable {
CREATE LINK conflict -> syzuna::Conflict;
CREATE REQUIRED PROPERTY active_states -> array<std::str>;
CREATE REQUIRED PROPERTY happiness -> syzuna::Happiness;
CREATE REQUIRED PROPERTY influence -> std::float64;
CREATE REQUIRED PROPERTY pending_states -> array<std::str>;
CREATE REQUIRED PROPERTY recovering_states -> array<std::str>;
};
CREATE TYPE syzuna::Commodity EXTENDING syzuna::Auditable {
CREATE REQUIRED PROPERTY category -> std::str;
CREATE REQUIRED PROPERTY commodity_id64 -> std::int64;
CREATE REQUIRED PROPERTY name -> std::str;
CREATE REQUIRED PROPERTY symbol -> std::str;
};
CREATE TYPE syzuna::Faction EXTENDING syzuna::Auditable {
CREATE PROPERTY allegiance -> std::str;
CREATE REQUIRED PROPERTY eddb_id -> std::int64;
CREATE PROPERTY government -> std::str;
CREATE REQUIRED PROPERTY is_player_faction -> std::bool;
CREATE REQUIRED PROPERTY name -> std::str;
};
CREATE TYPE syzuna::FactionPresence EXTENDING syzuna::Auditable {
CREATE REQUIRED PROPERTY is_native -> std::bool;
CREATE REQUIRED MULTI LINK bgs_data -> syzuna::BgsData {
CREATE CONSTRAINT std::exclusive;
};
CREATE LINK faction -> syzuna::Faction;
CREATE REQUIRED PROPERTY is_active -> std::bool;
};
CREATE TYPE syzuna::Market EXTENDING syzuna::Auditable {
CREATE PROPERTY market_id64 -> std::int64;
CREATE REQUIRED PROPERTY prohibited_commodities -> array<std::str>;
};
CREATE TYPE syzuna::MarketListing EXTENDING syzuna::Auditable {
CREATE REQUIRED LINK commodity -> syzuna::Commodity;
CREATE REQUIRED PROPERTY buy_price -> std::int32;
CREATE REQUIRED PROPERTY demand -> std::int32;
CREATE REQUIRED PROPERTY sell_price -> std::int32;
CREATE REQUIRED PROPERTY supply -> std::int32;
};
CREATE TYPE syzuna::OutfittingModule EXTENDING syzuna::Auditable {
CREATE REQUIRED PROPERTY category -> std::str;
CREATE REQUIRED PROPERTY class -> std::str;
CREATE PROPERTY entitlement -> std::str;
CREATE PROPERTY guidance -> std::str;
CREATE PROPERTY mount -> std::str;
CREATE REQUIRED PROPERTY name -> std::str;
CREATE REQUIRED PROPERTY outfitting_module_id64 -> std::int64;
CREATE REQUIRED PROPERTY rating -> std::str;
CREATE PROPERTY ship -> std::str;
CREATE REQUIRED PROPERTY symbol -> std::str;
};
CREATE TYPE syzuna::Outfitting EXTENDING syzuna::Auditable {
CREATE MULTI LINK modules -> syzuna::OutfittingModule;
CREATE PROPERTY market_id64 -> std::int64;
};
CREATE TYPE syzuna::Ship EXTENDING syzuna::Auditable {
CREATE REQUIRED PROPERTY name -> std::str;
CREATE REQUIRED PROPERTY ship_id64 -> std::int64;
CREATE REQUIRED PROPERTY symbol -> std::str;
};
CREATE TYPE syzuna::Shipyard EXTENDING syzuna::Auditable {
CREATE MULTI LINK ships -> syzuna::Ship;
CREATE PROPERTY market_id64 -> std::int64;
};
CREATE TYPE syzuna::Station EXTENDING syzuna::Auditable {
CREATE LINK faction -> syzuna::Faction;
CREATE LINK market -> syzuna::Market {
CREATE CONSTRAINT std::exclusive;
};
CREATE LINK outfitting -> syzuna::Outfitting {
CREATE CONSTRAINT std::exclusive;
};
CREATE LINK shipyard -> syzuna::Shipyard {
CREATE CONSTRAINT std::exclusive;
};
CREATE REQUIRED PROPERTY active_states -> array<std::str>;
CREATE REQUIRED PROPERTY allegiance -> std::str;
CREATE REQUIRED PROPERTY distance_to_arrival -> std::float64;
CREATE REQUIRED PROPERTY government -> std::str;
CREATE PROPERTY market_id64 -> std::float64;
CREATE REQUIRED PROPERTY max_landing_pad_size -> std::str;
CREATE REQUIRED PROPERTY name -> std::str;
CREATE REQUIRED PROPERTY primary_economy -> std::str;
CREATE REQUIRED PROPERTY secondary_economy -> std::str;
CREATE REQUIRED PROPERTY services -> array<std::str>;
CREATE REQUIRED PROPERTY station_type -> std::str;
};
CREATE TYPE syzuna::StarSystem EXTENDING syzuna::Auditable {
CREATE LINK faction -> syzuna::Faction;
CREATE MULTI LINK faction_presences -> syzuna::FactionPresence;
CREATE LINK native_factions := (SELECT
.faction_presences
FILTER
(.is_native = true)
);
CREATE MULTI LINK stations -> syzuna::Station;
CREATE PROPERTY active_states -> array<std::str>;
CREATE PROPERTY allegiance -> std::str;
CREATE PROPERTY coord_x -> std::float64;
CREATE PROPERTY coord_y -> std::float64;
CREATE PROPERTY coordd_z -> std::float64;
CREATE REQUIRED PROPERTY eddb_id -> std::int64;
CREATE PROPERTY government -> std::str;
CREATE REQUIRED PROPERTY id64 -> std::int64;
CREATE REQUIRED PROPERTY name -> std::str;
CREATE PROPERTY population -> std::int64;
CREATE PROPERTY power_state -> std::str;
CREATE PROPERTY powers -> array<std::str>;
CREATE PROPERTY primary_economy -> std::str;
CREATE PROPERTY secondary_economy -> std::str;
CREATE PROPERTY security -> std::str;
};
ALTER TYPE syzuna::BgsData {
CREATE LINK faction_presence := (.<bgs_data[IS syzuna::FactionPresence]);
};
ALTER TYPE syzuna::Commodity {
CREATE LINK listings := (.<commodity[IS syzuna::MarketListing]);
};
ALTER TYPE syzuna::Faction {
CREATE LINK controlled_stations := (.<faction[IS syzuna::Station]);
CREATE LINK controlled_systems := (.<faction[IS syzuna::StarSystem]);
CREATE LINK faction_presences := (.<faction[IS syzuna::FactionPresence]);
CREATE LINK home_system -> syzuna::StarSystem;
};
ALTER TYPE syzuna::FactionPresence {
CREATE LINK star_system -> syzuna::StarSystem;
};
ALTER TYPE syzuna::Market {
CREATE MULTI LINK listings -> syzuna::MarketListing {
CREATE CONSTRAINT std::exclusive;
};
CREATE LINK station := (.<market[IS syzuna::Station]);
};
ALTER TYPE syzuna::MarketListing {
CREATE LINK market := (.<listings[IS syzuna::Market]);
};
ALTER TYPE syzuna::Outfitting {
CREATE LINK station := (.<outfitting[IS syzuna::Station]);
};
ALTER TYPE syzuna::Shipyard {
CREATE LINK station := (.<shipyard[IS syzuna::Station]);
};
};
Loading