[ https://issues.apache.org/jira/browse/SPARK-28325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
jiaan.geng updated SPARK-28325: ------------------------------- Description: {code:java} <similar predicate> ::= <row value predicand> <similar predicate part 2> <similar predicate part 2> ::= [ NOT ] SIMILAR TO <similar pattern> [ ESCAPE <escape character> ] <similar pattern> ::= <character value expression> <regular expression> ::= <regular term> | <regular expression> <vertical bar> <regular term> <regular term> ::= <regular factor> | <regular term> <regular factor> <regular factor> ::= <regular primary> | <regular primary> <asterisk> | <regular primary> <plus sign> | <regular primary> <question mark> | <regular primary> <repeat factor> <repeat factor> ::= <left brace> <low value> [ <upper limit> ] <right brace> <upper limit> ::= <comma> [ <high value> ] <low value> ::= <unsigned integer> <high value> ::= <unsigned integer> <regular primary> ::= <character specifier> | <percent> | <regular character set> | <left paren> <regular expression> <right paren> <character specifier> ::= <non-escaped character> | <escaped character> <non-escaped character> ::= !! See the Syntax Rules. 494 Foundation (SQL/Foundation) CD 9075-2:201?(E) 8.6 <similar predicate> <escaped character> ::= !! See the Syntax Rules. <regular character set> ::= <underscore> | <left bracket> <character enumeration>... <right bracket> | <left bracket> <circumflex> <character enumeration>... <right bracket> | <left bracket> <character enumeration include>... <circumflex> <character enumeration exclude>... <right bracket> <character enumeration include> ::= <character enumeration> <character enumeration exclude> ::= <character enumeration> <character enumeration> ::= <character specifier> | <character specifier> <minus sign> <character specifier> | <left bracket> <colon> <regular character set identifier> <colon> <right bracket> <regular character set identifier> ::= <identifier>{code} Examples: {code} SELECT 'abc' RLIKE '%(b|d)%'; // false SELECT 'abc' SIMILAR TO '%(b|d)%' // true SELECT 'abc' RLIKE '(b|c)%'; // false SELECT 'abc' SIMILAR TO '(b|c)%'; // false{code} Currently, the following DBMSs support the syntax: * PostgreSQL:[https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP] * Redshift: [https://docs.aws.amazon.com/redshift/latest/dg/pattern-matching-conditions-similar-to.html] * teradata:[https://docs.teradata.com/reader/756LNiPSFdY~4JcCCcR5Cw/fwqgzZuhAvOXLKUu0kUfJQ] was: {code:java} <similar predicate> ::= <row value predicand> <similar predicate part 2> <similar predicate part 2> ::= [ NOT ] SIMILAR TO <similar pattern> [ ESCAPE <escape character> ] <similar pattern> ::= <character value expression> <regular expression> ::= <regular term> | <regular expression> <vertical bar> <regular term> <regular term> ::= <regular factor> | <regular term> <regular factor> <regular factor> ::= <regular primary> | <regular primary> <asterisk> | <regular primary> <plus sign> | <regular primary> <question mark> | <regular primary> <repeat factor> <repeat factor> ::= <left brace> <low value> [ <upper limit> ] <right brace> <upper limit> ::= <comma> [ <high value> ] <low value> ::= <unsigned integer> <high value> ::= <unsigned integer> <regular primary> ::= <character specifier> | <percent> | <regular character set> | <left paren> <regular expression> <right paren> <character specifier> ::= <non-escaped character> | <escaped character> <non-escaped character> ::= !! See the Syntax Rules. 494 Foundation (SQL/Foundation) CD 9075-2:201?(E) 8.6 <similar predicate> <escaped character> ::= !! See the Syntax Rules. <regular character set> ::= <underscore> | <left bracket> <character enumeration>... <right bracket> | <left bracket> <circumflex> <character enumeration>... <right bracket> | <left bracket> <character enumeration include>... <circumflex> <character enumeration exclude>... <right bracket> <character enumeration include> ::= <character enumeration> <character enumeration exclude> ::= <character enumeration> <character enumeration> ::= <character specifier> | <character specifier> <minus sign> <character specifier> | <left bracket> <colon> <regular character set identifier> <colon> <right bracket> <regular character set identifier> ::= <identifier>{code} Examples: {code} SELECT 'abc' RLIKE '%(b|d)%'; // false SELECT 'abc' SIMILAR TO '%(b|d)%' // true SELECT 'abc' RLIKE '(b|c)%'; // false SELECT 'abc' SIMILAR TO '(b|c)%'; // false{code} Currently, the following DBMSs support the syntax: * PostgreSQL:[https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP] * Redshift: [https://docs.aws.amazon.com/redshift/latest/dg/pattern-matching-conditions-similar-to.html] > Support ANSI SQL:SIMILAR TO ... ESCAPE syntax > --------------------------------------------- > > Key: SPARK-28325 > URL: https://issues.apache.org/jira/browse/SPARK-28325 > Project: Spark > Issue Type: Sub-task > Components: SQL > Affects Versions: 3.1.0 > Reporter: jiaan.geng > Priority: Major > > {code:java} > <similar predicate> ::= > <row value predicand> <similar predicate part 2> > <similar predicate part 2> ::= > [ NOT ] SIMILAR TO <similar pattern> [ ESCAPE <escape character> ] > <similar pattern> ::= > <character value expression> > <regular expression> ::= > <regular term> > | <regular expression> <vertical bar> <regular term> > <regular term> ::= > <regular factor> > | <regular term> <regular factor> > <regular factor> ::= > <regular primary> > | <regular primary> <asterisk> > | <regular primary> <plus sign> > | <regular primary> <question mark> > | <regular primary> <repeat factor> > <repeat factor> ::= > <left brace> <low value> [ <upper limit> ] <right brace> > <upper limit> ::= > <comma> [ <high value> ] > <low value> ::= > <unsigned integer> > <high value> ::= > <unsigned integer> > <regular primary> ::= > <character specifier> > | <percent> > | <regular character set> > | <left paren> <regular expression> <right paren> > <character specifier> ::= > <non-escaped character> > | <escaped character> > <non-escaped character> ::= > !! See the Syntax Rules. > 494 Foundation (SQL/Foundation) > CD 9075-2:201?(E) > 8.6 <similar predicate> > <escaped character> ::= > !! See the Syntax Rules. > <regular character set> ::= > <underscore> > | <left bracket> <character enumeration>... <right bracket> > | <left bracket> <circumflex> <character enumeration>... <right bracket> > | <left bracket> <character enumeration include>... > <circumflex> <character enumeration exclude>... <right bracket> > <character enumeration include> ::= > <character enumeration> > <character enumeration exclude> ::= > <character enumeration> > <character enumeration> ::= > <character specifier> > | <character specifier> <minus sign> <character specifier> > | <left bracket> <colon> <regular character set identifier> <colon> <right > bracket> > <regular character set identifier> ::= > <identifier>{code} > > Examples: > {code} > SELECT 'abc' RLIKE '%(b|d)%'; // false > SELECT 'abc' SIMILAR TO '%(b|d)%' // true > SELECT 'abc' RLIKE '(b|c)%'; // false > SELECT 'abc' SIMILAR TO '(b|c)%'; // false{code} > > Currently, the following DBMSs support the syntax: > * > PostgreSQL:[https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP] > * Redshift: > [https://docs.aws.amazon.com/redshift/latest/dg/pattern-matching-conditions-similar-to.html] > * > teradata:[https://docs.teradata.com/reader/756LNiPSFdY~4JcCCcR5Cw/fwqgzZuhAvOXLKUu0kUfJQ] -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org