Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve DSL #114

Merged
merged 4 commits into from
Jun 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions snapshot-tests/anorm-sql/CompositeIdsTest/query2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
with
emailaddress0 as (
(select emailaddress0 from person.emailaddress emailaddress0 where ((emailaddress0).businessentityid, (emailaddress0).emailaddressid) in (select unnest(?::int4[]), unnest(?::int4[])))
)
select (emailaddress0)."businessentityid",(emailaddress0)."emailaddressid",(emailaddress0)."emailaddress",(emailaddress0)."rowguid",(emailaddress0)."modifieddate"::text from emailaddress0
115 changes: 115 additions & 0 deletions snapshot-tests/anorm-sql/DSLTest/doubled.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
with
salesperson0 as (
(select salesperson0 from sales.salesperson salesperson0 where ((salesperson0).rowguid = ?::uuid))
),
employee0 as (
(select employee0 from humanresources.employee employee0 )
),
join_cte5 as (
select salesperson0, employee0
from salesperson0
join employee0
on ((salesperson0).businessentityid = (employee0).businessentityid)

),
person0 as (
(select person0 from person.person person0 )
),
join_cte4 as (
select salesperson0, employee0, person0
from join_cte5
join person0
on ((employee0).businessentityid = (person0).businessentityid)

),
businessentity0 as (
(select businessentity0 from person.businessentity businessentity0 )
),
join_cte3 as (
select salesperson0, employee0, person0, businessentity0
from join_cte4
join businessentity0
on ((person0).businessentityid = (businessentity0).businessentityid)

),
emailaddress0 as (
(select emailaddress0 from person.emailaddress emailaddress0 order by (emailaddress0).rowguid ASC )
),
join_cte2 as (
select salesperson0, employee0, person0, businessentity0, emailaddress0
from join_cte3
join emailaddress0
on ((emailaddress0).businessentityid = (businessentity0).businessentityid)

),
salesperson1 as (
(select salesperson1 from sales.salesperson salesperson1 )
),
join_cte1 as (
select salesperson0, employee0, person0, businessentity0, emailaddress0, salesperson1
from join_cte2
join salesperson1
on ((emailaddress0).businessentityid = (salesperson1).businessentityid)

),
salesperson2 as (
(select salesperson2 from sales.salesperson salesperson2 where ((salesperson2).rowguid = ?::uuid))
),
employee1 as (
(select employee1 from humanresources.employee employee1 )
),
join_cte10 as (
select salesperson2, employee1
from salesperson2
join employee1
on ((salesperson2).businessentityid = (employee1).businessentityid)

),
person1 as (
(select person1 from person.person person1 )
),
join_cte9 as (
select salesperson2, employee1, person1
from join_cte10
join person1
on ((employee1).businessentityid = (person1).businessentityid)

),
businessentity1 as (
(select businessentity1 from person.businessentity businessentity1 )
),
join_cte8 as (
select salesperson2, employee1, person1, businessentity1
from join_cte9
join businessentity1
on ((person1).businessentityid = (businessentity1).businessentityid)

),
emailaddress1 as (
(select emailaddress1 from person.emailaddress emailaddress1 order by (emailaddress1).rowguid ASC )
),
join_cte7 as (
select salesperson2, employee1, person1, businessentity1, emailaddress1
from join_cte8
join emailaddress1
on ((emailaddress1).businessentityid = (businessentity1).businessentityid)

),
salesperson3 as (
(select salesperson3 from sales.salesperson salesperson3 )
),
join_cte6 as (
select salesperson2, employee1, person1, businessentity1, emailaddress1, salesperson3
from join_cte7
join salesperson3
on ((emailaddress1).businessentityid = (salesperson3).businessentityid)

),
join_cte0 as (
select salesperson0, employee0, person0, businessentity0, emailaddress0, salesperson1, salesperson2, employee1, person1, businessentity1, emailaddress1, salesperson3
from join_cte1
join join_cte6
on ((emailaddress0).businessentityid = (emailaddress1).businessentityid)

)
select (salesperson0)."businessentityid",(salesperson0)."territoryid",(salesperson0)."salesquota",(salesperson0)."bonus",(salesperson0)."commissionpct",(salesperson0)."salesytd",(salesperson0)."saleslastyear",(salesperson0)."rowguid",(salesperson0)."modifieddate"::text,(employee0)."businessentityid",(employee0)."nationalidnumber",(employee0)."loginid",(employee0)."jobtitle",(employee0)."birthdate"::text,(employee0)."maritalstatus",(employee0)."gender",(employee0)."hiredate"::text,(employee0)."salariedflag",(employee0)."vacationhours",(employee0)."sickleavehours",(employee0)."currentflag",(employee0)."rowguid",(employee0)."modifieddate"::text,(employee0)."organizationnode",(person0)."businessentityid",(person0)."persontype",(person0)."namestyle",(person0)."title",(person0)."firstname",(person0)."middlename",(person0)."lastname",(person0)."suffix",(person0)."emailpromotion",(person0)."additionalcontactinfo",(person0)."demographics",(person0)."rowguid",(person0)."modifieddate"::text,(businessentity0)."businessentityid",(businessentity0)."rowguid",(businessentity0)."modifieddate"::text,(emailaddress0)."businessentityid",(emailaddress0)."emailaddressid",(emailaddress0)."emailaddress",(emailaddress0)."rowguid",(emailaddress0)."modifieddate"::text,(salesperson1)."businessentityid",(salesperson1)."territoryid",(salesperson1)."salesquota",(salesperson1)."bonus",(salesperson1)."commissionpct",(salesperson1)."salesytd",(salesperson1)."saleslastyear",(salesperson1)."rowguid",(salesperson1)."modifieddate"::text,(salesperson2)."businessentityid",(salesperson2)."territoryid",(salesperson2)."salesquota",(salesperson2)."bonus",(salesperson2)."commissionpct",(salesperson2)."salesytd",(salesperson2)."saleslastyear",(salesperson2)."rowguid",(salesperson2)."modifieddate"::text,(employee1)."businessentityid",(employee1)."nationalidnumber",(employee1)."loginid",(employee1)."jobtitle",(employee1)."birthdate"::text,(employee1)."maritalstatus",(employee1)."gender",(employee1)."hiredate"::text,(employee1)."salariedflag",(employee1)."vacationhours",(employee1)."sickleavehours",(employee1)."currentflag",(employee1)."rowguid",(employee1)."modifieddate"::text,(employee1)."organizationnode",(person1)."businessentityid",(person1)."persontype",(person1)."namestyle",(person1)."title",(person1)."firstname",(person1)."middlename",(person1)."lastname",(person1)."suffix",(person1)."emailpromotion",(person1)."additionalcontactinfo",(person1)."demographics",(person1)."rowguid",(person1)."modifieddate"::text,(businessentity1)."businessentityid",(businessentity1)."rowguid",(businessentity1)."modifieddate"::text,(emailaddress1)."businessentityid",(emailaddress1)."emailaddressid",(emailaddress1)."emailaddress",(emailaddress1)."rowguid",(emailaddress1)."modifieddate"::text,(salesperson3)."businessentityid",(salesperson3)."territoryid",(salesperson3)."salesquota",(salesperson3)."bonus",(salesperson3)."commissionpct",(salesperson3)."salesytd",(salesperson3)."saleslastyear",(salesperson3)."rowguid",(salesperson3)."modifieddate"::text from join_cte0
1 change: 1 addition & 0 deletions snapshot-tests/anorm-sql/ProductTest/delete.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
delete from production.product where coalesce((productid = ?::INTEGER), ?::BOOLEAN)
15 changes: 15 additions & 0 deletions snapshot-tests/anorm-sql/ProductTest/leftJoined.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
with
product0 as (
(select product0 from production.product product0 )
),
productmodel0 as (
(select productmodel0 from production.productmodel productmodel0 )
),
left_join_cte0 as (
select product0, productmodel0
from product0
left join productmodel0
on ((product0).productmodelid = (productmodel0).productmodelid)

)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text,(productmodel0)."productmodelid",(productmodel0)."name",(productmodel0)."catalogdescription",(productmodel0)."instructions",(productmodel0)."rowguid",(productmodel0)."modifieddate"::text from left_join_cte0
15 changes: 15 additions & 0 deletions snapshot-tests/anorm-sql/ProductTest/q.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
with
product0 as (
(select product0 from production.product product0 where (((NOT ((product0).name LIKE ?::VARCHAR) AND NOT (((product0).name || (product0).color) LIKE ?::VARCHAR)) AND ((product0).daystomanufacture > ?::INTEGER)) AND ((product0).modifieddate < ?::timestamp)))
),
productmodel0 as (
(select productmodel0 from production.productmodel productmodel0 where ((productmodel0).modifieddate < ?::timestamp))
),
join_cte0 as (
select product0, productmodel0
from product0
join productmodel0
on ((product0).productmodelid = (productmodel0).productmodelid)
where NOT (productmodel0).instructions IS NULL
)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text,(productmodel0)."productmodelid",(productmodel0)."name",(productmodel0)."catalogdescription",(productmodel0)."instructions",(productmodel0)."rowguid",(productmodel0)."modifieddate"::text from join_cte0
25 changes: 25 additions & 0 deletions snapshot-tests/anorm-sql/ProductTest/q2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
with
product0 as (
(select product0 from production.product product0 where (((((product0).productid = ANY(?) AND (length((product0).name) > ?::INTEGER)) AND NOT (((product0).name || (product0).color) LIKE ?::VARCHAR)) AND (coalesce((product0).color, ?::VARCHAR) != ?::VARCHAR)) AND ((product0).modifieddate < ?::timestamp)))
),
productmodel0 as (
(select productmodel0 from production.productmodel productmodel0 where (length((productmodel0).name) > ?::INTEGER))
),
join_cte0 as (
select product0, productmodel0
from product0
join productmodel0
on ((product0).productmodelid = (productmodel0).productmodelid)
where ((productmodel0).name != ?::VARCHAR)
),
productmodel1 as (
(select productmodel1 from production.productmodel productmodel1 where (length((productmodel1).name) > ?::INTEGER))
),
left_join_cte0 as (
select product0, productmodel0, productmodel1
from join_cte0
left join productmodel1
on (((product0).productmodelid = (productmodel1).productmodelid) AND ?::BOOLEAN)
order by (productmodel1).name ASC , (product0).color DESC NULLS FIRST
)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text,(productmodel0)."productmodelid",(productmodel0)."name",(productmodel0)."catalogdescription",(productmodel0)."instructions",(productmodel0)."rowguid",(productmodel0)."modifieddate"::text,(productmodel1)."productmodelid",(productmodel1)."name",(productmodel1)."catalogdescription",(productmodel1)."instructions",(productmodel1)."rowguid",(productmodel1)."modifieddate"::text from left_join_cte0
25 changes: 25 additions & 0 deletions snapshot-tests/anorm-sql/ProductTest/query.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
with
product0 as (
(select product0 from production.product product0 where ((((product0).class = ?::VARCHAR) AND (((product0).daystomanufacture > ?::INTEGER) OR ((product0).daystomanufacture <= ?::INTEGER))) AND ((product0).productline = ?::VARCHAR)))
),
unitmeasure0 as (
(select unitmeasure0 from production.unitmeasure unitmeasure0 where ((unitmeasure0).name LIKE ?::VARCHAR))
),
join_cte0 as (
select product0, unitmeasure0
from product0
join unitmeasure0
on ((product0).sizeunitmeasurecode = (unitmeasure0).unitmeasurecode)

),
productmodel0 as (
(select productmodel0 from production.productmodel productmodel0 )
),
left_join_cte0 as (
select product0, unitmeasure0, productmodel0
from join_cte0
left join productmodel0
on ((product0).productmodelid = (productmodel0).productmodelid)
where ((product0).productmodelid = (productmodel0).productmodelid) order by (product0).productmodelid ASC , (productmodel0).name DESC NULLS FIRST
)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text,(unitmeasure0)."unitmeasurecode",(unitmeasure0)."name",(unitmeasure0)."modifieddate"::text,(productmodel0)."productmodelid",(productmodel0)."name",(productmodel0)."catalogdescription",(productmodel0)."instructions",(productmodel0)."rowguid",(productmodel0)."modifieddate"::text from left_join_cte0
35 changes: 35 additions & 0 deletions snapshot-tests/anorm-sql/ProductTest/query0.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
with
product0 as (
(select product0 from production.product product0 )
),
productmodel0 as (
(select productmodel0 from production.productmodel productmodel0 )
),
join_cte2 as (
select product0, productmodel0
from product0
join productmodel0
on ((product0).productmodelid = (productmodel0).productmodelid)

),
productsubcategory0 as (
(select productsubcategory0 from production.productsubcategory productsubcategory0 )
),
join_cte1 as (
select product0, productmodel0, productsubcategory0
from join_cte2
join productsubcategory0
on ((product0).productsubcategoryid = (productsubcategory0).productsubcategoryid)

),
productcategory0 as (
(select productcategory0 from production.productcategory productcategory0 )
),
join_cte0 as (
select product0, productmodel0, productsubcategory0, productcategory0
from join_cte1
join productcategory0
on ((productsubcategory0).productcategoryid = (productcategory0).productcategoryid)

)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text,(productmodel0)."productmodelid",(productmodel0)."name",(productmodel0)."catalogdescription",(productmodel0)."instructions",(productmodel0)."rowguid",(productmodel0)."modifieddate"::text,(productsubcategory0)."productsubcategoryid",(productsubcategory0)."productcategoryid",(productsubcategory0)."name",(productsubcategory0)."rowguid",(productsubcategory0)."modifieddate"::text,(productcategory0)."productcategoryid",(productcategory0)."name",(productcategory0)."rowguid",(productcategory0)."modifieddate"::text from join_cte0
1 change: 1 addition & 0 deletions snapshot-tests/anorm-sql/ProductTest/updateReturning.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
update production.product set name = substring((upper(reverse(name)) || ?::"public"."Name"), ?::INTEGER, ?::INTEGER)::varchar, listprice = ?::DECIMAL::numeric, reorderpoint = (reorderpoint + ?::int2)::int2, sizeunitmeasurecode = ?::VARCHAR::bpchar, sellstartdate = ?::timestamp::timestamp where coalesce((productid = ?::INTEGER), ?::BOOLEAN) returning "productid","name","productnumber","makeflag","finishedgoodsflag","color","safetystocklevel","reorderpoint","standardcost","listprice","size","sizeunitmeasurecode","weightunitmeasurecode","weight","daystomanufacture","productline","class","style","productsubcategoryid","productmodelid","sellstartdate"::text,"sellenddate"::text,"discontinueddate"::text,"rowguid","modifieddate"::text
5 changes: 5 additions & 0 deletions snapshot-tests/anorm-sql/SeekTest/complex.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
with
product0 as (
(select product0 from production.product product0 where ((((product0).name > ?::"public"."Name") OR (((product0).name = ?::"public"."Name") AND ((product0).weight < ?::DECIMAL))) OR ((((product0).name = ?::"public"."Name") AND ((product0).weight = ?::DECIMAL)) AND ((product0).listprice < ?::DECIMAL))) order by (product0).name ASC , (product0).weight DESC , (product0).listprice DESC )
)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text from product0
5 changes: 5 additions & 0 deletions snapshot-tests/anorm-sql/SeekTest/uniform-ascending.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
with
product0 as (
(select product0 from production.product product0 where (((product0).name,(product0).weight,(product0).listprice) > (?::"public"."Name",?::DECIMAL,?::DECIMAL)) order by (product0).name ASC , (product0).weight ASC , (product0).listprice ASC )
)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text from product0
5 changes: 5 additions & 0 deletions snapshot-tests/anorm-sql/SeekTest/uniform-descending.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
with
product0 as (
(select product0 from production.product product0 where (((product0).name,(product0).weight,(product0).listprice) < (?::"public"."Name",?::DECIMAL,?::DECIMAL)) order by (product0).name DESC , (product0).weight DESC , (product0).listprice DESC )
)
select (product0)."productid",(product0)."name",(product0)."productnumber",(product0)."makeflag",(product0)."finishedgoodsflag",(product0)."color",(product0)."safetystocklevel",(product0)."reorderpoint",(product0)."standardcost",(product0)."listprice",(product0)."size",(product0)."sizeunitmeasurecode",(product0)."weightunitmeasurecode",(product0)."weight",(product0)."daystomanufacture",(product0)."productline",(product0)."class",(product0)."style",(product0)."productsubcategoryid",(product0)."productmodelid",(product0)."sellstartdate"::text,(product0)."sellenddate"::text,(product0)."discontinueddate"::text,(product0)."rowguid",(product0)."modifieddate"::text from product0
Loading
Loading