1717package com.ctrip.sqllin.dsl
1818
1919import com.ctrip.sqllin.driver.DatabaseConnection
20+ import com.ctrip.sqllin.dsl.annotation.StatementDslMaker
2021import com.ctrip.sqllin.dsl.sql.Table
2122import com.ctrip.sqllin.dsl.sql.X
2223import com.ctrip.sqllin.dsl.sql.clause.*
@@ -98,18 +99,21 @@ public class DatabaseScope internal constructor(
9899 * Insert.
99100 */
100101
102+ @StatementDslMaker
101103 public infix fun <T > Table<T>.INSERT (entities : Iterable <T >) {
102104 val statement = Insert .insert(this , databaseConnection, entities)
103105 addStatement(statement)
104106 }
105107
108+ @StatementDslMaker
106109 public infix fun <T > Table<T>.INSERT (entity : T ): Unit =
107110 INSERT (listOf (entity))
108111
109112 /* *
110113 * Update.
111114 */
112115
116+ @StatementDslMaker
113117 public infix fun <T > Table<T>.UPDATE (clause : SetClause <T >): UpdateStatementWithoutWhereClause <T > =
114118 transactionStatementsGroup?.let {
115119 val statement = Update .update(this , databaseConnection, it, clause)
@@ -123,11 +127,13 @@ public class DatabaseScope internal constructor(
123127 * Delete.
124128 */
125129
130+ @StatementDslMaker
126131 public infix fun Table <* >.DELETE (x : X ) {
127132 val statement = Delete .deleteAllEntities(this , databaseConnection)
128133 addStatement(statement)
129134 }
130135
136+ @StatementDslMaker
131137 public infix fun <T > Table<T>.DELETE (clause : WhereClause <T >) {
132138 val statement = Delete .delete(this , databaseConnection, clause)
133139 addStatement(statement)
@@ -140,12 +146,16 @@ public class DatabaseScope internal constructor(
140146 /* *
141147 * Select with no any clause.
142148 */
149+
150+ @StatementDslMaker
143151 public inline infix fun <reified T > Table<T>.SELECT (x : X ): FinalSelectStatement <T > =
144152 select(kSerializer(), false )
145153
154+ @StatementDslMaker
146155 public inline infix fun <reified T > Table<T>.SELECT_DISTINCT (x : X ): FinalSelectStatement <T > =
147156 select(kSerializer(), true )
148157
158+ @StatementDslMaker
149159 public fun <T > Table<T>.select (serializer : KSerializer <T >, isDistinct : Boolean ): FinalSelectStatement <T > {
150160 val container = getSelectStatementGroup()
151161 val statement = Select .select(this , isDistinct, serializer, databaseConnection, container)
@@ -156,9 +166,12 @@ public class DatabaseScope internal constructor(
156166 /* *
157167 * Receive the 'WHERE' clause.
158168 */
169+
170+ @StatementDslMaker
159171 public inline infix fun <reified T > Table<T>.SELECT (clause : WhereClause <T >): WhereSelectStatement <T > =
160172 select(kSerializer(), clause, false )
161173
174+ @StatementDslMaker
162175 public inline infix fun <reified T > Table<T>.SELECT_DISTINCT (clause : WhereClause <T >): WhereSelectStatement <T > =
163176 select(kSerializer(), clause, true )
164177
@@ -172,9 +185,12 @@ public class DatabaseScope internal constructor(
172185 /* *
173186 * Receive the 'ORDER BY' clause.
174187 */
188+
189+ @StatementDslMaker
175190 public inline infix fun <reified T > Table<T>.SELECT (clause : OrderByClause <T >): OrderBySelectStatement <T > =
176191 select(kSerializer(), clause, false )
177192
193+ @StatementDslMaker
178194 public inline infix fun <reified T > Table<T>.SELECT_DISTINCT (clause : OrderByClause <T >): OrderBySelectStatement <T > =
179195 select(kSerializer(), clause, true )
180196
@@ -188,9 +204,12 @@ public class DatabaseScope internal constructor(
188204 /* *
189205 * Receive the 'LIMIT' clause.
190206 */
207+
208+ @StatementDslMaker
191209 public inline infix fun <reified T > Table<T>.SELECT (clause : LimitClause <T >): LimitSelectStatement <T > =
192210 select(kSerializer(), clause, false )
193211
212+ @StatementDslMaker
194213 public inline infix fun <reified T > Table<T>.SELECT_DISTINCT (clause : LimitClause <T >): LimitSelectStatement <T > =
195214 select(kSerializer(), clause, true )
196215
@@ -204,9 +223,12 @@ public class DatabaseScope internal constructor(
204223 /* *
205224 * Receive the 'GROUP BY' clause.
206225 */
226+
227+ @StatementDslMaker
207228 public inline infix fun <reified T > Table<T>.SELECT (clause : GroupByClause <T >): GroupBySelectStatement <T > =
208229 select(kSerializer(), clause, false )
209230
231+ @StatementDslMaker
210232 public inline infix fun <reified T > Table<T>.SELECT_DISTINCT (clause : GroupByClause <T >): GroupBySelectStatement <T > =
211233 select(kSerializer(), clause, true )
212234
@@ -239,6 +261,7 @@ public class DatabaseScope internal constructor(
239261 }
240262 }
241263
264+ @StatementDslMaker
242265 public inline fun <T > Table<T>.UNION_ALL (block : Table <T >.(Table <T >) -> Unit ): FinalSelectStatement <T > {
243266 beginUnion<T >()
244267 var selectStatement: SelectStatement <T >? = null
@@ -269,9 +292,11 @@ public class DatabaseScope internal constructor(
269292 * Receive the 'JOIN' clause.
270293 */
271294
295+ @StatementDslMaker
272296 public inline infix fun <T , reified R > Table<T>.SELECT (clause : JoinClause <R >): JoinStatementWithoutCondition <R > =
273297 select(getKSerializer(), clause, false )
274298
299+ @StatementDslMaker
275300 public inline infix fun <T , reified R > Table<T>.SELECT_DISTINCT (clause : JoinClause <R >): JoinStatementWithoutCondition <R > =
276301 select(getKSerializer(), clause, true )
277302
@@ -284,9 +309,11 @@ public class DatabaseScope internal constructor(
284309 * Receive the natural join clause(includes 'NATURAL LEFT OUTER JOIN' and 'NATURAL INNER JOIN').
285310 */
286311
312+ @StatementDslMaker
287313 public inline infix fun <T , reified R > Table<T>.SELECT (clause : NaturalJoinClause <R >): JoinSelectStatement <R > =
288314 select(getKSerializer(), clause, false )
289315
316+ @StatementDslMaker
290317 public inline infix fun <T , reified R > Table<T>.SELECT_DISTINCT (clause : NaturalJoinClause <R >): JoinSelectStatement <R > =
291318 select(getKSerializer(), clause, true )
292319
0 commit comments