| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package parser
- import (
- "errors"
- "testing"
- "github.com/danfragoso/pizzasql-next/pkg/lexer"
- "github.com/danfragoso/pizzasql-next/pkg/pgerror"
- )
- func TestSelectLockingClauseRejected(t *testing.T) {
- for _, sql := range []string{
- "SELECT * FROM t FOR UPDATE",
- "SELECT * FROM t WHERE id = 1 FOR UPDATE NOWAIT",
- "SELECT * FROM t FOR SHARE",
- "SELECT * FROM t FOR NO KEY UPDATE SKIP LOCKED",
- "SELECT id FROM t ORDER BY id LIMIT 10 FOR UPDATE",
- "SELECT id FROM t UNION SELECT id FROM u FOR UPDATE",
- } {
- 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 TestSelectWithoutLockingClauseStillParses(t *testing.T) {
- for _, sql := range []string{
- "SELECT * FROM t",
- "SELECT * FROM t WHERE id = 1",
- "SELECT * FROM t ORDER BY id LIMIT 1",
- } {
- if _, err := New(lexer.New(sql)).Parse(); err != nil {
- t.Fatalf("%s: %v", sql, err)
- }
- }
- }
|