sqlexpressions - fix escape quote (#87921)

This commit is contained in:
Scott Lepper 2024-05-15 10:55:58 -04:00 committed by GitHub
parent 608a3faacd
commit 93acc0c932
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 0 deletions

View File

@ -19,6 +19,7 @@ const (
// TablesList returns a list of tables for the sql statement
func TablesList(rawSQL string) ([]string, error) {
duckDB := duck.NewInMemoryDB()
rawSQL = strings.Replace(rawSQL, "'", "''", -1)
cmd := fmt.Sprintf("SELECT json_serialize_sql('%s')", rawSQL)
ret, err := duckDB.RunCommands([]string{cmd})
if err != nil {

View File

@ -196,3 +196,21 @@ func TestWith(t *testing.T) {
assert.Equal(t, "B", tables[1])
assert.Equal(t, "BEE", tables[2])
}
func TestWithQuote(t *testing.T) {
t.Skip()
sql := "select *,'junk' from foo"
tables, err := TablesList((sql))
assert.Nil(t, err)
assert.Equal(t, "foo", tables[0])
}
func TestWithQuote2(t *testing.T) {
t.Skip()
sql := "SELECT json_serialize_sql('SELECT 1')"
tables, err := TablesList((sql))
assert.Nil(t, err)
assert.Equal(t, 0, len(tables))
}