Skip to content

Commit ad26bb0

Browse files
committed
Fix string datatype
1 parent 9bae885 commit ad26bb0

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

jql_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,17 +1153,29 @@ func TestRawFunction(t *testing.T) {
11531153
"operator": "=",
11541154
"operand": "AND",
11551155
"value": 15
1156+
},
1157+
{
1158+
"isStatic": true,
1159+
"datatype": "string",
1160+
"clause": "v_transaction_redemptions.customer_name",
1161+
"operator": "=",
1162+
"operand": "AND",
1163+
"value": "MAHMUD"
11561164
}
11571165
],
11581166
"table": "v_transaction_redemptions"
11591167
}
11601168
`
11611169

11621170
jql, _ := NewJson2Sql([]byte(jsonData), &Json2SqlConf{WithSanitizedInjection: true})
1163-
sql, _, _ := jql.Generate()
1171+
sql, par, _ := jql.Generate()
11641172

11651173
fmt.Println(sql)
11661174

1175+
for _, p := range par {
1176+
fmt.Println("PARAM ==>", p, reflect.TypeOf(p))
1177+
}
1178+
11671179
// strExpectation := "SELECT table_1.a, table_1.b AS foo_bar, (SELECT * FROM table_4 WHERE a = ? LIMIT 1) AS baz, table_2.b, table_3.a, table_3.b FROM table_1 JOIN table_2 ON table_2.a = table_1.a LEFT JOIN table_3 ON table_3.a = table_2.a WHERE table_1.a = ? AND table_1.b = ? AND table_2.a > sum(?) AND table_2.b = (SELECT * FROM table_4 WHERE a = ? LIMIT 1) OR (table_3.a BETWEEN ? AND ? AND table_3.b = ?) GROUP BY table_1.a HAVING COUNT(table_2.a) > ? ORDER BY table_1.a, table_2.a ASC LIMIT 1 OFFSET 0"
11681180
// assert.Equal(t, strExpectation, sql)
11691181
// assert.Equal(t, []interface{}{float64(1), "foo", true, float64(100), float64(1), "2020-01-01", "2023-01-01", "2", float64(10)}, filter)

sql_datatype.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,10 @@ func ExtractValueByDataType(datatype SQLDataTypeEnum, value json.RawMessage, isS
100100
switch datatype {
101101
case String:
102102
json.Unmarshal(value, &valueString)
103-
return jqlFlagOpen + "'" + valueString + "'" + jqlFlagClose
103+
if isStatic {
104+
return jqlFlagOpen + "'" + valueString + "'" + jqlFlagClose
105+
}
106+
return jqlFlagOpen + valueString + jqlFlagClose
104107
case Boolean:
105108
var valueBool bool
106109

@@ -112,7 +115,6 @@ func ExtractValueByDataType(datatype SQLDataTypeEnum, value json.RawMessage, isS
112115
json.Unmarshal(value, &valueNumber)
113116
return jqlFlagOpen + string(value) + jqlFlagClose
114117
case Raw:
115-
// fmt.Println("YAP", jqlFlagOpen+strings.Trim(string(value), `"`)+jqlFlagClose)
116118
return jqlFlagOpen + strings.Trim(string(value), `"`) + jqlFlagClose
117119
case Array:
118120
return ArrayConversionToStringExpression(value, isStatic)

0 commit comments

Comments
 (0)