@@ -41,6 +41,7 @@ type CreateInterface[T any] interface {
4141 ExecInterface [T ]
4242 // chain methods available at start; Select/Omit keep CreateInterface to allow Create chaining
4343 Scopes (scopes ... func (db * Statement )) ChainInterface [T ]
44+ Clauses (clauses ... clause.Expression ) CreateInterface [T ]
4445 Where (query interface {}, args ... interface {}) ChainInterface [T ]
4546 Not (query interface {}, args ... interface {}) ChainInterface [T ]
4647 Or (query interface {}, args ... interface {}) ChainInterface [T ]
@@ -71,6 +72,7 @@ type CreateInterface[T any] interface {
7172type ChainInterface [T any ] interface {
7273 ExecInterface [T ]
7374 Scopes (scopes ... func (db * Statement )) ChainInterface [T ]
75+ Clauses (clauses ... clause.Expression ) ChainInterface [T ]
7476 Where (query interface {}, args ... interface {}) ChainInterface [T ]
7577 Not (query interface {}, args ... interface {}) ChainInterface [T ]
7678 Or (query interface {}, args ... interface {}) ChainInterface [T ]
@@ -210,6 +212,12 @@ func (c createG[T]) Table(name string, args ...interface{}) CreateInterface[T] {
210212 })}
211213}
212214
215+ func (c createG [T ]) Clauses (clauses ... clause.Expression ) CreateInterface [T ] {
216+ return createG [T ]{c .with (func (db * DB ) * DB {
217+ return db .Clauses (clauses ... )
218+ })}
219+ }
220+
213221func (c createG [T ]) Select (query string , args ... interface {}) CreateInterface [T ] {
214222 return createG [T ]{c .with (func (db * DB ) * DB {
215223 return db .Select (query , args ... )
@@ -297,6 +305,12 @@ func (c chainG[T]) Offset(offset int) ChainInterface[T] {
297305 })
298306}
299307
308+ func (c chainG [T ]) Clauses (clauses ... clause.Expression ) ChainInterface [T ] {
309+ return c .with (func (db * DB ) * DB {
310+ return db .Clauses (clauses ... )
311+ })
312+ }
313+
300314type joinBuilder struct {
301315 db * DB
302316}
0 commit comments