Skip to content

Commit 7511567

Browse files
committed
return the native sql in the lables
1 parent c74371f commit 7511567

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

e2e/compose.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,7 @@ services:
8282
interval: 3s
8383
timeout: 30s
8484
retries: 10
85+
ports:
86+
- 5432
8587
volumes:
8688
cache:

pkg/data_query.go

+4
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ func (s *dbserver) Query(ctx context.Context, query *server.DataQuery) (result *
6666

6767
query.Sql = dbQuery.GetInnerSQL().ToNativeSQL(query.Sql)
6868
result.Meta.Labels = dbQuery.GetLabels(ctx, query.Sql)
69+
result.Meta.Labels = append(result.Meta.Labels, &server.Pair{
70+
Key: "_native_sql",
71+
Value: query.Sql,
72+
})
6973

7074
var dataResult *server.DataQueryResult
7175
now := time.Now()

pkg/inner_sql.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ type InnerSQL interface {
2323
}
2424

2525
const (
26-
InnerSelectTable_ = "@selectTable_"
27-
InnerShowDatabases = "@showDatabases"
28-
InnerShowTables = "@showTables"
29-
InnerCurrentDB = "@currentDB"
26+
InnerSelectTable_ = "@selectTable_"
27+
InnerSelectTableLimit_ = "@selectTableLImit100_"
28+
InnerShowDatabases = "@showDatabases"
29+
InnerShowTables = "@showTables"
30+
InnerCurrentDB = "@currentDB"
3031
)
3132

3233
func GetInnerSQL(dialect string) InnerSQL {
@@ -44,6 +45,8 @@ type mysqlDialect struct {
4445
func (m *mysqlDialect) ToNativeSQL(query string) (sql string) {
4546
if strings.HasPrefix(query, InnerSelectTable_) {
4647
sql = "SELECT * FROM " + strings.ReplaceAll(query, InnerSelectTable_, "")
48+
} else if strings.HasPrefix(query, InnerSelectTableLimit_) {
49+
sql = "SELECT * FROM " + strings.ReplaceAll(query, InnerSelectTableLimit_, "") + " LIMIT 100"
4750
} else if query == InnerShowDatabases {
4851
sql = "SHOW DATABASES"
4952
} else if query == InnerShowTables {
@@ -62,6 +65,8 @@ type postgresDialect struct {
6265
func (p *postgresDialect) ToNativeSQL(query string) (sql string) {
6366
if strings.HasPrefix(query, InnerSelectTable_) {
6467
sql = `SELECT * FROM "` + strings.ReplaceAll(query, InnerSelectTable_, "") + `"`
68+
} else if strings.HasPrefix(query, InnerSelectTableLimit_) {
69+
sql = `SELECT * FROM "` + strings.ReplaceAll(query, InnerSelectTableLimit_, "") + `" LIMIT 100`
6570
} else if query == InnerShowDatabases {
6671
sql = "SELECT table_catalog as name FROM information_schema.tables"
6772
} else if query == InnerShowTables {

pkg/inner_sql_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ func TestInnerSQL(t *testing.T) {
3636

3737
innerSQLs := []string{
3838
pkg.InnerSelectTable_,
39+
pkg.InnerSelectTableLimit_,
3940
pkg.InnerShowDatabases,
4041
pkg.InnerShowTables,
4142
pkg.InnerCurrentDB,

0 commit comments

Comments
 (0)