substring::[ sql92::[ { name: "SUBSTRING sql92 syntax missing left paren", statement: "SELECT SUBSTRING FROM 'asdf' FOR 1) FROM foo", assert: { result: SyntaxFail }, }, { name: "SUBSTRING sql92 syntax missing FROM or comma", statement: "SELECT SUBSTRING('str' 1) FROM foo", assert: { result: SyntaxFail }, }, { name: "SUBSTRING sql92 syntax without length and missing right paren", statement: "SELECT SUBSTRING('str' FROM 1 FROM foo", assert: { result: SyntaxFail }, }, { name: "SUBSTRING sql92 syntax with length missing right paren", statement: "SELECT SUBSTRING('str' FROM 1 FOR 1 FROM foo", assert: { result: SyntaxFail }, } ], partiql::[ { name: "SUBSTRING without length missing right paren", statement: "SELECT SUBSTRING('str', 1 FROM foo", assert: { result: SyntaxFail }, }, { name: "SUBSTRING missing right paren", statement: "SELECT SUBSTRING('str', 1, 1 FROM foo", assert: { result: SyntaxFail }, } ] ] trim::[ { name: "TRIM no left paren", statement: "TRIM ' ')", assert: { result: SyntaxFail }, }, ] position::[ { name: "POSITION no second arg, no IN", statement: "POSITION('abc')", assert: { result: SyntaxFail }, }, { name: "POSITION no second arg", statement: "POSITION('abc' IN)", assert: { result: SyntaxFail }, }, { name: "POSITION no first arg", statement: "POSITION(IN 'abcdefg')", assert: { result: SyntaxFail }, }, ]