ExtRegExp.h File Reference

Go to the source code of this file.

Functions

FENNEL_BEGIN_NAMESPACE void strLikeEscapeA (RegisterRef< bool > *result, RegisterRef< char * > *matchValue, RegisterRef< char * > *pattern, RegisterRef< char * > *escape)
 StrLike.
void strLikeA (RegisterRef< bool > *result, RegisterRef< char * > *matchValue, RegisterRef< char * > *pattern)
 StrLike.
void strSimilarEscapeA (RegisterRef< bool > *result, RegisterRef< char * > *matchValue, RegisterRef< char * > *pattern, RegisterRef< char * > *escape)
 StrSimilar.
void strSimilarA (RegisterRef< bool > *result, RegisterRef< char * > *matchValue, RegisterRef< char * > *pattern)
 StrSimilar.
void ExtRegExpRegister (ExtendedInstructionTable *eit)


Function Documentation

void ExtRegExpRegister ( ExtendedInstructionTable eit  ) 

Definition at line 180 of file ExtRegExp.cpp.

References ExtendedInstructionTable::add(), STANDARD_TYPE_BOOL, STANDARD_TYPE_CHAR, STANDARD_TYPE_VARCHAR, strLikeA(), strLikeEscapeA(), strSimilarA(), and strSimilarEscapeA().

Referenced by CalcInit::instance().

00181 {
00182     assert(eit != NULL);
00183 
00184     // JK 2004/5/27: Are all of these combinations really needed?
00185     int i;
00186     for (i = 0; i < 8; i++) {
00187         vector<StandardTypeDescriptorOrdinal> params;
00188 
00189         params.push_back(STANDARD_TYPE_BOOL);
00190 
00191         if (i & 0x01) {
00192             params.push_back(STANDARD_TYPE_CHAR);
00193         } else {
00194             params.push_back(STANDARD_TYPE_VARCHAR);
00195         }
00196         if (i & 0x02) {
00197             params.push_back(STANDARD_TYPE_CHAR);
00198         } else {
00199             params.push_back(STANDARD_TYPE_VARCHAR);
00200         }
00201 
00202         eit->add(
00203             "strLikeA3", params,
00204             (ExtendedInstruction3Context<bool, char*, char*>*) NULL,
00205             &strLikeA);
00206         eit->add(
00207             "strSimilarA3", params,
00208             (ExtendedInstruction3Context<bool, char*, char*>*) NULL,
00209             &strSimilarA);
00210 
00211         // tack on escape parameter
00212         if (i & 0x04) {
00213             params.push_back(STANDARD_TYPE_CHAR);
00214         } else {
00215             params.push_back(STANDARD_TYPE_VARCHAR);
00216         }
00217 
00218         eit->add(
00219             "strLikeA4", params,
00220             (ExtendedInstruction4Context<bool, char*, char*, char*>*) NULL,
00221             &strLikeEscapeA);
00222         eit->add(
00223             "strSimilarA4", params,
00224             (ExtendedInstruction4Context<bool, char*, char*, char*>*) NULL,
00225             &strSimilarEscapeA);
00226     }
00227 }

void strLikeA ( RegisterRef< bool > *  result,
RegisterRef< char * > *  matchValue,
RegisterRef< char * > *  pattern 
)

StrLike.

Ascii. Reuses pattern. ESCAPE clause not defined.

FENNEL_BEGIN_NAMESPACE void strLikeEscapeA ( RegisterRef< bool > *  result,
RegisterRef< char * > *  matchValue,
RegisterRef< char * > *  pattern,
RegisterRef< char * > *  escape 
)

StrLike.

Ascii. Reuses pattern. Pass a zero length string into escape if not defined Passing a null into escape will result in null, per SQL99.

void strSimilarA ( RegisterRef< bool > *  result,
RegisterRef< char * > *  matchValue,
RegisterRef< char * > *  pattern 
)

StrSimilar.

Ascii. Reuses pattern. ESCAPE clause not defined.

void strSimilarEscapeA ( RegisterRef< bool > *  result,
RegisterRef< char * > *  matchValue,
RegisterRef< char * > *  pattern,
RegisterRef< char * > *  escape 
)

StrSimilar.

Ascii. Reuses pattern. Pass a zero length string into escape if not defined Passing a null into escape will result in null, per SQL99 & SQL2003


Generated on Mon Jun 22 04:00:22 2009 for Fennel by  doxygen 1.5.1