@@ -72,6 +72,11 @@ func TestBuilder(t *testing.T) {
7272 wantQuery : "INSERT INTO `users` (`age`) VALUES (?)" ,
7373 wantArgs : []any {1 },
7474 },
75+ {
76+ input : Dialect (dialect .YDB ).Insert ("users" ).Columns ("age" ).Values (1 ),
77+ wantQuery : "INSERT INTO `users` (`age`) VALUES ($p0)" ,
78+ wantArgs : []any {driver.NamedValue {Name : "p0" , Value : 1 }},
79+ },
7580 {
7681 input : Dialect (dialect .Postgres ).Insert ("users" ).Columns ("age" ).Values (1 ).Returning ("id" ),
7782 wantQuery : `INSERT INTO "users" ("age") VALUES ($1) RETURNING "id"` ,
@@ -146,6 +151,11 @@ func TestBuilder(t *testing.T) {
146151 wantQuery : "UPDATE `users` SET `name` = ?" ,
147152 wantArgs : []any {"foo" },
148153 },
154+ {
155+ input : Dialect (dialect .YDB ).Update ("users" ).Set ("name" , "foo" ),
156+ wantQuery : "UPDATE `users` SET `name` = $p0" ,
157+ wantArgs : []any {driver.NamedValue {Name : "p0" , Value : "foo" }},
158+ },
149159 {
150160 input : Update ("users" ).Set ("name" , "foo" ).Set ("age" , 10 ),
151161 wantQuery : "UPDATE `users` SET `name` = ?, `age` = ?" ,
@@ -483,6 +493,14 @@ func TestBuilder(t *testing.T) {
483493 wantQuery : `SELECT * FROM "users" WHERE "name" = $1` ,
484494 wantArgs : []any {"Ariel" },
485495 },
496+ {
497+ input : Dialect (dialect .YDB ).
498+ Select ().
499+ From (Table ("users" )).
500+ Where (EQ ("name" , "Alex" )),
501+ wantQuery : "SELECT * FROM `users` WHERE `name` = $p0" ,
502+ wantArgs : []any {driver.NamedValue {Name : "p0" , Value : "Alex" }},
503+ },
486504 {
487505 input : Select ().
488506 From (Table ("users" )).
@@ -533,6 +551,12 @@ func TestBuilder(t *testing.T) {
533551 Schema ("mydb" ),
534552 wantQuery : "DELETE FROM `users` WHERE `parent_id` IS NOT NULL" ,
535553 },
554+ {
555+ input : Dialect (dialect .YDB ).
556+ Delete ("users" ).
557+ Where (NotNull ("parent_id" )),
558+ wantQuery : "DELETE FROM `users` WHERE `parent_id` IS NOT NULL" ,
559+ },
536560 {
537561 input : Dialect (dialect .Postgres ).
538562 Delete ("users" ).
@@ -712,6 +736,18 @@ func TestBuilder(t *testing.T) {
712736 }(),
713737 wantQuery : `SELECT "u"."id", "g"."name" FROM "users" AS "u" JOIN "groups" AS "g" ON "u"."id" = "g"."user_id"` ,
714738 },
739+ {
740+ input : func () Querier {
741+ d := Dialect (dialect .YDB )
742+ t1 := d .Table ("users" ).As ("u" )
743+ t2 := d .Table ("groups" ).As ("g" )
744+ return d .Select (t1 .C ("id" ), t2 .C ("name" )).
745+ From (t1 ).
746+ Join (t2 ).
747+ On (t1 .C ("id" ), t2 .C ("user_id" ))
748+ }(),
749+ wantQuery : "SELECT `u`.`id`, `g`.`name` FROM `users` AS `u` JOIN `groups` AS `g` ON `u`.`id` = `g`.`user_id`" ,
750+ },
715751 {
716752 input : func () Querier {
717753 t1 := Table ("users" ).As ("u" )
@@ -1092,6 +1128,11 @@ func TestBuilder(t *testing.T) {
10921128 Select ().Count ().From (Table ("users" )),
10931129 wantQuery : `SELECT COUNT(*) FROM "users"` ,
10941130 },
1131+ {
1132+ input : Dialect (dialect .YDB ).
1133+ Select ().Count ().From (Table ("users" )),
1134+ wantQuery : "SELECT COUNT(*) FROM `users`" ,
1135+ },
10951136 {
10961137 input : Select ().Count (Distinct ("id" )).From (Table ("users" )),
10971138 wantQuery : "SELECT COUNT(DISTINCT `id`) FROM `users`" ,
@@ -1159,6 +1200,13 @@ func TestBuilder(t *testing.T) {
11591200 GroupBy ("name" ),
11601201 wantQuery : `SELECT "name", COUNT(*) FROM "users" GROUP BY "name"` ,
11611202 },
1203+ {
1204+ input : Dialect (dialect .YDB ).
1205+ Select ("name" , Count ("*" )).
1206+ From (Table ("users" )).
1207+ GroupBy ("name" ),
1208+ wantQuery : "SELECT `name`, COUNT(*) FROM `users` GROUP BY `name`" ,
1209+ },
11621210 {
11631211 input : Select ("name" , Count ("*" )).
11641212 From (Table ("users" )).
@@ -1202,6 +1250,14 @@ func TestBuilder(t *testing.T) {
12021250 Limit (1 ),
12031251 wantQuery : `SELECT * FROM "users" LIMIT 1` ,
12041252 },
1253+ {
1254+ input : Dialect (dialect .YDB ).
1255+ Select ("*" ).
1256+ From (Table ("users" )).
1257+ OrderBy ("id" ).
1258+ Limit (10 ),
1259+ wantQuery : "SELECT * FROM `users` ORDER BY `id` LIMIT 10" ,
1260+ },
12051261 {
12061262 input : Select ("age" ).Distinct ().From (Table ("users" )),
12071263 wantQuery : "SELECT DISTINCT `age` FROM `users`" ,
@@ -2175,7 +2231,7 @@ func TestSelector_AssumeOrderBy_YDB(t *testing.T) {
21752231 From (Table ("users" )).
21762232 OrderBy ("id" ).
21772233 AssumeOrderBy ("id" )
2178-
2234+
21792235 err := selector .Err ()
21802236 require .Error (t , err )
21812237 })
@@ -2196,7 +2252,7 @@ func TestSelector_AssumeOrderBy_YDB(t *testing.T) {
21962252 Select ("*" ).
21972253 From (Table ("users" )).
21982254 AssumeOrderBy ("name" )
2199-
2255+
22002256 err := selector .Err ()
22012257 require .Error (t , err )
22022258 })
@@ -2209,7 +2265,7 @@ func TestSelector_VIEW_SecondaryIndex_YDB(t *testing.T) {
22092265 From (d .Table ("series" ).View ("views_index" )).
22102266 Where (GTE ("views" , 1000 )).
22112267 Query ()
2212-
2268+
22132269 require .Equal (t , "SELECT `series_id`, `title`, `info`, `release_date`, `views`, `uploaded_user_id` FROM `series` VIEW `views_index` WHERE `views` >= $p0" , query )
22142270 require .Equal (t , []any {driver.NamedValue {Name : "p0" , Value : 1000 }}, args )
22152271 })
@@ -2218,22 +2274,22 @@ func TestSelector_VIEW_SecondaryIndex_YDB(t *testing.T) {
22182274 d := Dialect (dialect .YDB )
22192275 series := d .Table ("series" ).View ("users_index" ).As ("t1" )
22202276 users := d .Table ("users" ).View ("name_index" ).As ("t2" )
2221-
2277+
22222278 query , args := d .Select (series .C ("series_id" ), series .C ("title" )).
22232279 From (series ).
22242280 Join (users ).
22252281 On (series .C ("uploaded_user_id" ), users .C ("user_id" )).
22262282 Where (EQ (users .C ("name" ), "John Doe" )).
22272283 Query ()
2228-
2284+
22292285 require .Equal (t , "SELECT `t1`.`series_id`, `t1`.`title` FROM `series` VIEW `users_index` AS `t1` JOIN `users` VIEW `name_index` AS `t2` ON `t1`.`uploaded_user_id` = `t2`.`user_id` WHERE `t2`.`name` = $p0" , query )
22302286 require .Equal (t , []any {driver.NamedValue {Name : "p0" , Value : "John Doe" }}, args )
22312287 })
22322288
22332289 t .Run ("VIEW on non-YDB dialect should error" , func (t * testing.T ) {
22342290 d := Dialect (dialect .Postgres )
22352291 table := d .Table ("users" ).View ("idx_name" )
2236-
2292+
22372293 err := table .Err ()
22382294 require .Error (t , err )
22392295 })
0 commit comments