Skip to content

Commit 2d2e4b0

Browse files
committed
extended sql parser
1 parent 0470849 commit 2d2e4b0

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

query_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package sqlparser
33
import (
44
"encoding/json"
55
"fmt"
6+
"os"
67
"strings"
78
"testing"
89

@@ -432,3 +433,27 @@ func TestParseSelect_BigQueryRawRegexLiteral(t *testing.T) {
432433
actual := strings.TrimSpace(Stringify(parsed))
433434
assert.Equal(t, sql, actual)
434435
}
436+
437+
func TestParseSelect_SiteQualityWholeQuery(t *testing.T) {
438+
data, err := os.ReadFile("testdata/site_quality.sql")
439+
if !assert.NoError(t, err) {
440+
return
441+
}
442+
sql := string(data)
443+
444+
parsed, err := ParseQuery(sql, WithErrorHandler(func(err error, cur *parsly.Cursor, _ interface{}) error {
445+
remaining := strings.TrimSpace(string(cur.Input[cur.Pos:]))
446+
if strings.HasPrefix(strings.ToUpper(remaining), "QUALIFY ") {
447+
cur.Pos = len(cur.Input)
448+
return nil
449+
}
450+
return err
451+
}))
452+
if !assert.NoError(t, err) {
453+
return
454+
}
455+
456+
actual := strings.TrimSpace(Stringify(parsed))
457+
assert.Contains(t, actual, "r'^(?:https?://)?(?:www\\.)?'")
458+
assert.Contains(t, actual, "ORDER BY v.rn")
459+
}

0 commit comments

Comments
 (0)