| 123456789101112131415161718192021222324252627282930313233 |
- package parser
- import (
- "errors"
- "testing"
- "github.com/danfragoso/pizzasql-next/pkg/lexer"
- "github.com/danfragoso/pizzasql-next/pkg/pgerror"
- )
- func TestArrayParametersAndAnyPredicatesRejected(t *testing.T) {
- for _, sql := range []string{
- "SELECT * FROM t WHERE id = ANY('{1,2,3}')",
- "SELECT * FROM t WHERE id <> ANY('{1,2,3}')",
- "SELECT * FROM t WHERE id = ALL('{1,2,3}')",
- "SELECT * FROM t WHERE id = ANY(ARRAY[1,2])",
- } {
- t.Run(sql, func(t *testing.T) {
- _, err := New(lexer.New(sql)).Parse()
- if !errors.Is(err, pgerror.ErrFeatureNotSupported) {
- t.Fatalf("error = %v, want ErrFeatureNotSupported", err)
- }
- })
- }
- }
- func TestAnyAsOrdinaryColumnStillParses(t *testing.T) {
- // ANY is only a predicate keyword when followed by "(". A column literally
- // named any must keep working.
- if _, err := New(lexer.New("SELECT any FROM t")).Parse(); err != nil {
- t.Fatalf("parse: %v", err)
- }
- }
|