[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: BNF for SQL LIKE Predicate
Farrukh, Unfortunately, the text I wrote is not complete, so it is not a proposal. Although it could become the basis of a proposal. Here are some unaddressed issues: 1) The SQL standard requires a single quote character as a character string delimiter, while XML in general is expecting a double quote. If we embed SQL syntax into our XML element for "Clause", how does this difference get resolved? 2) SQL specifies the percent character (%) as its "arbitrary string specifier" and the underscore character (_) as its "arbitrary character specifier". This is different than the "%" or "*" and "?" suggested in your earlier comments. Is that OK with existing implementations of LIKE-like functionality? -- Len At 11:54 AM 9/24/01, Farrukh Najmi wrote: >Len, > >I agree with your proposed text. I feel it should be placed in the appendix of >RS and referenced from main text. > >BTW we know of at least one XML Vendor XML Global that feels quite comfortable >with this idea. See: > >http://lists.oasis-open.org/archives/regrep-query/200109/msg00003.html >(Matt's agreement) >http://lists.oasis-open.org/archives/regrep-query/200109/msg00001.html >(David's agreement) > > > >Len Gallagher wrote: > > > Query team, > > > > During last Friday's teleconference I expressed some concern about ad hoc > > adoption of SQL LIKE predicate syntax in our "Clause" element for Registry > > Query. The reason for my reluctance is the complexity of SQL LIKE. I'm > > convinced that XML vendors will not be willing to implement it > > completely. The trick is then to agree on some reasonable subset. > > > > Attached is a file called "LIKEpredicate.txt" that is copied from the BNF > > for the SQL <like predicate> as specified in ISO/IEC 9075-2:1999. It is > > very complex because it takes full advantage of the power of SQL and allows > > character expressions, character functions, and numeric functions in its > > specification. > > > > If we decide to go this route -- and I'm still not convinced that a > > majority of the vendors (or Registry clients) will want to do that -- then > > we need to agree on some restrictions. Here are some suggestions: > > > > 1) The SQL LIKE predicate for Registry Query shall be a <character like > > predicate>. > > > > 2) The <character match value> in a <character like predicate> shall be a > > <column reference> that is a single <column name> that matches a visible > > attribute name of the relevant Registry Query class. The underlying data > > type of this attribute shall be "String". > > > > 3) The <character pattern> in a <character like predicate> shall be a > > <character string literal> that does not contain a <character set > > specification> or a <character representation>. > > > > 4) The <escape character> in a <character like predicate> shall be a > > <character string literal> that does not contain a <character set > > specification> or a <character representation>. > > > > With these restrictions, the SQL LIKE predicate for Registry Query could be > > reduced to the following BNF representation: > > > > <character like predicate> ::= > > <column name> [ NOT ] LIKE <character pattern> > > [ ESCAPE <escape character> ] > > > > <character pattern> ::= <character string literal> > > > > <escape character> ::= <character string literal> > > > > <character string literal> ::= <quote> [ <character representation>... ] > > <quote> > > > > <character representation> ::= <nonquote character> | <quote symbol> > > > > <nonquote character> ::= -- Any character from the default character set > > that is not a single quote character, i.e. not the ' character. > > > > <quote symbol> ::= <quote><quote> > > > > But this still leaves the very comprehensive rules for how to specify and > > implement the <character pattern> and <escape character> -- but these rules > > are fully specified in the SQL standard and we could simply point to them. > > > > Regards, > > Len > > > > ************************************************************** > > Len Gallagher LGallagher@nist.gov > > NIST Work: 301-975-3251 > > Bldg 820 Room 562 Home: 301-424-1928 > > Gaithersburg, MD 20899-8970 USA Fax: 301-948-6213 > > ************************************************************** > > > > ------------------------------------------------------------------------ > > > > LIKEpredicate.txtName: LIKEpredicate.txt > > Type: Plain Text (text/plain) > >-- >Regards, >Farrukh > ************************************************************** Len Gallagher LGallagher@nist.gov NIST Work: 301-975-3251 Bldg 820 Room 562 Home: 301-424-1928 Gaithersburg, MD 20899-8970 USA Fax: 301-948-6213 **************************************************************
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC