Skip to content

Commit 51b59d2

Browse files
authored
reafactor/104-core-remove-unnecessary-parentheses-to-group-conditions (#105)
* Remove parenthesis for AND & OR criteria * Update version.properties Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update README.md --------- Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 0e4e806 commit 51b59d2

File tree

5 files changed

+35
-15
lines changed

5 files changed

+35
-15
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# [ :biohazard: W.I.P :biohazard: ] support-query-builder &nbsp; [![Run unit tests](https://github.com/AniTrend/support-query-builder/actions/workflows/android-test.yml/badge.svg)](https://github.com/AniTrend/support-query-builder/actions/workflows/android-test.yml) &nbsp; [![Codacy Badge](https://app.codacy.com/project/badge/Grade/2bcc9217df74403a9d4afd8664b20c34)](https://www.codacy.com/gh/AniTrend/support-query-builder/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=AniTrend/support-query-builder&amp;utm_campaign=Badge_Grade) &nbsp; [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FAniTrend%2Fsupport-query-builder.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FAniTrend%2Fsupport-query-builder?ref=badge_shield) &nbsp; [![](https://jitpack.io/v/AniTrend/support-query-builder.svg)](https://jitpack.io/#AniTrend/support-query-builder)
1+
# support-query-builder &nbsp; [![Run unit tests](https://github.com/AniTrend/support-query-builder/actions/workflows/android-test.yml/badge.svg)](https://github.com/AniTrend/support-query-builder/actions/workflows/android-test.yml) &nbsp; [![Codacy Badge](https://app.codacy.com/project/badge/Grade/2bcc9217df74403a9d4afd8664b20c34)](https://www.codacy.com/gh/AniTrend/support-query-builder/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=AniTrend/support-query-builder&amp;utm_campaign=Badge_Grade) &nbsp; [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FAniTrend%2Fsupport-query-builder.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FAniTrend%2Fsupport-query-builder?ref=badge_shield) &nbsp; [![](https://jitpack.io/v/AniTrend/support-query-builder.svg)](https://jitpack.io/#AniTrend/support-query-builder)
22

33
A simple yet comprehensive sql **select** query builder with featuring an annotation processor to generate schema objects from [Room](https://developer.android.com/reference/androidx/room/Room) annotations that plugs straight into [RawQuery](https://developer.android.com/reference/androidx/room/RawQuery)
44

core/src/main/kotlin/co/anitrend/support/query/builder/core/criteria/Criteria.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ sealed class Criteria : IQueryBuilder {
3535
expression = "$expression${right.build()}"
3636
}
3737

38-
return "(${expression.trim()})"
38+
return expression.trim()
3939
}
4040

4141
override fun buildParameters() =
@@ -123,7 +123,7 @@ sealed class Criteria : IQueryBuilder {
123123
private val right: Criteria?,
124124
) : Criteria() {
125125
override fun build(): String {
126-
val expression = "(${left?.build()} OR ${right?.build()})"
126+
val expression = "${left?.build()} OR ${right?.build()}"
127127
return expression.trim()
128128
}
129129

core/src/test/kotlin/co/anitrend/support/query/builder/core/QueryBuilderTest.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,18 @@ import co.anitrend.support.query.builder.core.criteria.extensions.endsWith
55
import co.anitrend.support.query.builder.core.criteria.extensions.equal
66
import co.anitrend.support.query.builder.core.extensions.asFullSqlString
77
import co.anitrend.support.query.builder.core.from.From
8-
import co.anitrend.support.query.builder.core.from.extentions.*
8+
import co.anitrend.support.query.builder.core.from.extentions.`as`
9+
import co.anitrend.support.query.builder.core.from.extentions.asTable
10+
import co.anitrend.support.query.builder.core.from.extentions.innerJoin
11+
import co.anitrend.support.query.builder.core.from.extentions.leftJoin
912
import co.anitrend.support.query.builder.core.projection.Projection
1013
import co.anitrend.support.query.builder.core.projection.extensions.`as`
11-
import co.anitrend.support.query.builder.dsl.*
14+
import co.anitrend.support.query.builder.dsl.from
15+
import co.anitrend.support.query.builder.dsl.groupBy
16+
import co.anitrend.support.query.builder.dsl.innerJoin
17+
import co.anitrend.support.query.builder.dsl.orderByDesc
18+
import co.anitrend.support.query.builder.dsl.select
19+
import co.anitrend.support.query.builder.dsl.where
1220
import io.mockk.every
1321
import io.mockk.mockk
1422
import junit.framework.TestCase
@@ -117,7 +125,7 @@ class QueryBuilderTest : TestCase() {
117125
}
118126

119127
fun `test select with inner join and where clause plus filter`() {
120-
val expected = "SELECT * FROM table_name INNER JOIN other_table_name ON other_column_id = column_id WHERE (column_name = 'something' AND column_name LIKE '%pe')"
128+
val expected = "SELECT * FROM table_name INNER JOIN other_table_name ON other_column_id = column_id WHERE column_name = 'something' AND column_name LIKE '%pe'"
121129
builder from {
122130
table.innerJoin("other_table_name").on(
123131
"other_column_id", "column_id"
@@ -131,7 +139,7 @@ class QueryBuilderTest : TestCase() {
131139
}
132140

133141
fun `test select with inner join, left join and where clause plus filter`() {
134-
val expected = "SELECT * FROM table_name INNER JOIN other_table_name ON other_column_id = column_id LEFT JOIN some_table_name ON some_other_column_id = column_id WHERE (column_name = 'something' AND column_name LIKE '%pe')"
142+
val expected = "SELECT * FROM table_name INNER JOIN other_table_name ON other_column_id = column_id LEFT JOIN some_table_name ON some_other_column_id = column_id WHERE column_name = 'something' AND column_name LIKE '%pe'"
135143
builder from {
136144
table.innerJoin("other_table_name").on(
137145
"other_column_id", "column_id"
@@ -148,7 +156,7 @@ class QueryBuilderTest : TestCase() {
148156
}
149157

150158
fun `test select with inner join, left join and where clause plus filter segmented`() {
151-
val expected = "SELECT * FROM table_name INNER JOIN other_table_name ON other_column_id = column_id LEFT JOIN some_table_name ON some_other_column_id = column_id WHERE (column_name = 'something' AND column_name LIKE '%pe')"
159+
val expected = "SELECT * FROM table_name INNER JOIN other_table_name ON other_column_id = column_id LEFT JOIN some_table_name ON some_other_column_id = column_id WHERE column_name = 'something' AND column_name LIKE '%pe'"
152160
builder from table
153161
builder from {
154162
innerJoin("other_table_name") {
@@ -167,4 +175,4 @@ class QueryBuilderTest : TestCase() {
167175

168176
assertEquals(expected, actual)
169177
}
170-
}
178+
}

core/src/test/kotlin/co/anitrend/support/query/builder/core/criteria/CriteriaTest.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
package co.anitrend.support.query.builder.core.criteria
22

3-
import co.anitrend.support.query.builder.core.criteria.extensions.*
3+
import co.anitrend.support.query.builder.core.criteria.extensions.and
4+
import co.anitrend.support.query.builder.core.criteria.extensions.between
5+
import co.anitrend.support.query.builder.core.criteria.extensions.exists
6+
import co.anitrend.support.query.builder.core.criteria.extensions.greaterThan
7+
import co.anitrend.support.query.builder.core.criteria.extensions.`in`
8+
import co.anitrend.support.query.builder.core.criteria.extensions.isNull
9+
import co.anitrend.support.query.builder.core.criteria.extensions.lesserThanOrEqual
10+
import co.anitrend.support.query.builder.core.criteria.extensions.like
11+
import co.anitrend.support.query.builder.core.criteria.extensions.match
12+
import co.anitrend.support.query.builder.core.criteria.extensions.notExists
13+
import co.anitrend.support.query.builder.core.criteria.extensions.notIsNull
14+
import co.anitrend.support.query.builder.core.criteria.extensions.or
415
import co.anitrend.support.query.builder.core.projection.Projection
516
import io.mockk.every
617
import io.mockk.mockk
@@ -19,7 +30,7 @@ class CriteriaTest : TestCase() {
1930
}
2031

2132
fun `test and criteria`() {
22-
val expected = "(column_name IS NULL AND column_last IS NOT NULL)"
33+
val expected = "column_name IS NULL AND column_last IS NOT NULL"
2334
val criteria = columnName.isNull() and columnLast.notIsNull()
2435
val actual = criteria.build()
2536

@@ -67,7 +78,7 @@ class CriteriaTest : TestCase() {
6778
}
6879

6980
fun `test or criteria`() {
70-
val expected = "(column_name > ? OR column_last <= ?)"
81+
val expected = "column_name > ? OR column_last <= ?"
7182
val criteria = columnName greaterThan 6 or columnLast.lesserThanOrEqual(4)
7283
val actual = criteria.build()
7384

@@ -89,4 +100,4 @@ class CriteriaTest : TestCase() {
89100

90101
assertEquals(expected, actual)
91102
}
92-
}
103+
}

gradle/version.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
version=0.2.0
2-
code=2000000
1+
version=0.2.1
2+
code=2001000
3+
name=v0.2.1

0 commit comments

Comments
 (0)