Lines Matching refs:pColl

8223     CollSeq *pColl;        /* Used when p4type is P4_COLLSEQ */  member
10310 CollSeq *pColl; /* The collation type of the column or 0 */ member
12799 CollSeq *pColl; /* Collating sequence */ member
57923 SQLITE_PRIVATE int sqlite3MemCompare(const Mem *pMem1, const Mem *pMem2, const CollSeq *pColl){
57994 assert( !pColl || pColl->xCmp );
57996 if( pColl ){
57997 if( pMem1->enc==pColl->enc ){
58000 return pColl->xCmp(pColl->pUser,pMem1->n,pMem1->z,pMem2->n,pMem2->z);
58010 v1 = sqlite3ValueText((sqlite3_value*)&c1, pColl->enc);
58012 v2 = sqlite3ValueText((sqlite3_value*)&c2, pColl->enc);
58014 rc = pColl->xCmp(pColl->pUser, n1, v1, n2, v2);
59175 CollSeq *pColl = pKeyInfo->aColl[j];
59176 if( pColl ){
59177 int n = sqlite3Strlen30(pColl->zName);
59186 memcpy(&zTemp[i], pColl->zName,n+1);
59199 CollSeq *pColl = pOp->p4.pColl;
59200 sqlite3_snprintf(nTemp, zTemp, "collseq(%.20s)", pColl->zName);
63735 CollSeq *pColl; /* Collating sequence to use on this term */
64937 u.ag.ctx.pColl = pOp[-1].p4.pColl;
65347 assert( pOp->p4type==P4_COLLSEQ || pOp->p4.pColl==0 );
65350 u.ai.res = sqlite3MemCompare(pIn3, pIn1, pOp->p4.pColl);
65415 CollSeq *pColl; /* Collating sequence to use on this term */
65443 u.aj.pColl = u.aj.pKeyInfo->aColl[u.aj.i];
65445 iCompare = sqlite3MemCompare(&aMem[u.aj.p1+u.aj.idx], &aMem[u.aj.p2+u.aj.idx], u.aj.pColl);
68973 u.ce.ctx.pColl = 0;
68978 u.ce.ctx.pColl = pOp[-1].p4.pColl;
71887 pDup->pColl = pExpr->pColl;
72589 CollSeq *pColl = pE->pColl;
72594 pE->pColl = pColl;
73082 SQLITE_PRIVATE Expr *sqlite3ExprSetColl(Expr *pExpr, CollSeq *pColl){
73083 if( pExpr && pColl ){
73084 pExpr->pColl = pColl;
73099 CollSeq *pColl;
73102 pColl = sqlite3LocateCollSeq(pParse, zColl);
73103 sqlite3ExprSetColl(pExpr, pColl);
73113 CollSeq *pColl = 0;
73117 pColl = p->pColl;
73118 if( pColl ) break;
73130 pColl = sqlite3FindCollSeq(db, ENC(db), zColl, 0);
73131 pExpr->pColl = pColl;
73140 if( sqlite3CheckCollSeq(pParse, pColl) ){
73141 pColl = 0;
73143 return pColl;
73240 CollSeq *pColl;
73243 assert( pLeft->pColl );
73244 pColl = pLeft->pColl;
73246 assert( pRight->pColl );
73247 pColl = pRight->pColl;
73249 pColl = sqlite3ExprCollSeq(pParse, pLeft);
73250 if( !pColl ){
73251 pColl = sqlite3ExprCollSeq(pParse, pRight);
73254 return pColl;
73478 pRoot->pColl = pRight->pColl;
73485 pRoot->pColl = pLeft->pColl;
73712 if( p->pLeft || p->pRight || p->pColl || p->x.pList ){
75555 CollSeq *pColl = 0; /* A collating sequence */
75626 if( (pDef->flags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){
75627 pColl = sqlite3ExprCollSeq(pParse, pFarg->a[i].pExpr);
75631 if( !pColl ) pColl = db->pDfltColl;
75632 sqlite3VdbeAddOp4(v, OP_CollSeq, 0, 0, 0, (char *)pColl, P4_COLLSEQ);
76481 if( (pA->flags & EP_ExpCollate)!=0 && pA->pColl!=pB->pColl ) return 2;
77847 CollSeq *pColl;
77886 pColl = sqlite3LocateCollSeq(pParse, pIdx->azColl[i]);
77888 (char*)pColl, P4_COLLSEQ);
80410 CollSeq *pColl;
80412 pColl = sqlite3FindCollSeq(db, enc, zName, initbusy);
80413 if( !initbusy && (!pColl || !pColl->xCmp) ){
80414 pColl = sqlite3GetCollSeq(db, enc, pColl, zName);
80415 if( !pColl ){
80420 return pColl;
81762 CollSeq *pColl = pExpr->pColl;
81765 if( ALWAYS(pColl) ){
81766 nExtra += (1 + sqlite3Strlen30(pColl->zName));
81841 if( pListItem->pExpr && ALWAYS(pListItem->pExpr->pColl) ){
81843 zColl = pListItem->pExpr->pColl->zName;
82849 CollSeq *pColl; /* Collating sequence to be reindexed, or NULL */
82872 pColl = sqlite3FindCollSeq(db, ENC(db), zColl, 0);
82873 if( pColl ){
82991 static int synthCollSeq(sqlite3 *db, CollSeq *pColl){
82993 char *z = pColl->zName;
82999 memcpy(pColl, pColl2, sizeof(CollSeq));
83000 pColl->xDel = 0; /* Do not copy the destructor */
83024 CollSeq *pColl, /* Collating sequence with native encoding, or NULL */
83029 p = pColl;
83058 SQLITE_PRIVATE int sqlite3CheckCollSeq(Parse *pParse, CollSeq *pColl){
83059 if( pColl ){
83060 const char *zName = pColl->zName;
83062 CollSeq *p = sqlite3GetCollSeq(db, ENC(db), pColl, zName);
83068 assert( p==pColl );
83093 CollSeq *pColl;
83095 pColl = sqlite3HashFind(&db->aCollSeq, zName, nName);
83097 if( 0==pColl && create ){
83098 pColl = sqlite3DbMallocZero(db, 3*sizeof(*pColl) + nName + 1 );
83099 if( pColl ){
83101 pColl[0].zName = (char*)&pColl[3];
83102 pColl[0].enc = SQLITE_UTF8;
83103 pColl[1].zName = (char*)&pColl[3];
83104 pColl[1].enc = SQLITE_UTF16LE;
83105 pColl[2].zName = (char*)&pColl[3];
83106 pColl[2].enc = SQLITE_UTF16BE;
83107 memcpy(pColl[0].zName, zName, nName);
83108 pColl[0].zName[nName] = 0;
83109 pDel = sqlite3HashInsert(&db->aCollSeq, pColl[0].zName, nName, pColl);
83115 assert( pDel==0 || pDel==pColl );
83119 pColl = 0;
83123 return pColl;
83147 CollSeq *pColl;
83149 pColl = findCollSeqEntry(db, zName, create);
83151 pColl = db->pDfltColl;
83155 if( pColl ) pColl += enc-1;
83156 return pColl;
84079 return context->pColl;
84093 CollSeq *pColl;
84097 pColl = sqlite3GetFuncCollSeq(context);
84098 assert( pColl );
84104 if( (sqlite3MemCompare(argv[iBest], argv[i], pColl)^mask)>=0 ){
84790 CollSeq *pColl = sqlite3GetFuncCollSeq(context);
84792 if( sqlite3MemCompare(argv[0], argv[1], pColl)!=0 ){
85397 CollSeq *pColl = sqlite3GetFuncCollSeq(context);
85407 cmp = sqlite3MemCompare(pBest, pArg, pColl);
86179 pLeft->pColl = sqlite3LocateCollSeq(pParse, pCol->zColl);
90940 CollSeq *pColl = (CollSeq *)sqliteHashData(p);
90942 sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pColl->zName, 0);
93117 CollSeq *pColl;
93118 pColl = sqlite3ExprCollSeq(pParse, pItem->pExpr);
93119 if( !pColl ){
93120 pColl = db->pDfltColl;
93122 pInfo->aColl[i] = pColl;
93690 CollSeq *pColl;
93707 pColl = sqlite3ExprCollSeq(pParse, p);
93708 if( pColl ){
93709 pCol->zColl = sqlite3DbStrDup(db, pColl->zName);
94599 CollSeq *pColl;
94602 pColl = pTerm->pColl;
94604 pColl = multiSelectCollSeq(pParse, p, aPermute[i]);
94606 pTerm->pColl = pColl;
94608 pKeyMerge->aColl[i] = pColl;
94876 if( pNew && pExpr->pColl ){
94877 pNew->pColl = pExpr->pColl;
95954 CollSeq *pColl = 0;
95958 for(j=0, pItem=pList->a; !pColl && j<nArg; j++, pItem++){
95959 pColl = sqlite3ExprCollSeq(pParse, pItem->pExpr);
95961 if( !pColl ){
95962 pColl = pParse->db->pDfltColl;
95964 sqlite3VdbeAddOp4(v, OP_CollSeq, 0, 0, 0, (char *)pColl, P4_COLLSEQ);
96379 CollSeq *pColl = sqlite3ExprCollSeq(pParse, pEList->a[iExpr].pExpr);
96381 sqlite3VdbeChangeP4(v, -1, (const char *)pColl, P4_COLLSEQ);
100874 pExpr->pRight->pColl = sqlite3ExprCollSeq(pParse, pExpr->pRight);
100875 pExpr->pLeft->pColl = sqlite3ExprCollSeq(pParse, pExpr->pLeft);
100876 SWAP(CollSeq*,pExpr->pRight->pColl,pExpr->pLeft->pColl);
100940 CollSeq *pColl;
100953 pColl = sqlite3BinaryCompareCollSeq(pParse, pX->pLeft, pX->pRight);
100954 assert(pColl || pParse->nErr);
100959 if( pColl && sqlite3StrICmp(pColl->zName, pIdx->azColl[j]) ) continue;
101607 CollSeq *pColl; /* Collating sequence to use */
101629 pColl = sqlite3FindCollSeq(db, SQLITE_UTF8, noCase ? "NOCASE" : "BINARY",0);
101631 sqlite3ExprSetColl(sqlite3ExprDup(db,pLeft,0), pColl),
101637 sqlite3ExprSetColl(sqlite3ExprDup(db,pLeft,0), pColl),
101780 CollSeq *pColl = sqlite3ExprCollSeq(pParse, p);
101781 if( ALWAYS(pColl) && 0==sqlite3StrICmp(pColl->zName, zColl) ){
101968 CollSeq *pColl; /* The collating sequence of pExpr */
101980 pColl = sqlite3ExprCollSeq(pParse, pExpr);
101981 if( !pColl ){
101982 pColl = db->pDfltColl;
101994 zColl = pColl->zName;
101996 if( pExpr->iColumn!=iColumn || sqlite3StrICmp(pColl->zName, zColl) ){
102341 CollSeq *pColl; /* Collating sequence to on a column */
102417 pColl = sqlite3BinaryCompareCollSeq(pParse, pX->pLeft, pX->pRight);
102418 pIdx->azColl[n] = ALWAYS(pColl) ? pColl->zName : "BINARY";
102829 CollSeq *pColl;
102838 pColl = db->pDfltColl;
102839 assert( pColl->enc==SQLITE_UTF8 );
102841 pColl = sqlite3GetCollSeq(db, SQLITE_UTF8, 0, *pIdx->azColl);
102842 if( pColl==0 ){
102847 z = (const u8 *)sqlite3ValueText(pVal, pColl->enc);
102851 assert( z && pColl && pColl->xCmp );
102853 n = sqlite3ValueBytes(pVal, pColl->enc);
102861 if( pColl->enc!=SQLITE_UTF8 ){
102864 db, pColl->enc, aSample[i].u.z, aSample[i].nByte, &nSample
102870 c = pColl->xCmp(pColl->pUser, nSample, zSample, n, z);
102875 c = pColl->xCmp(pColl->pUser, aSample[i].nByte, aSample[i].u.z, n, z);
110915 CollSeq *pColl = (CollSeq *)sqliteHashData(i);
110918 if( pColl[j].xDel ){
110919 pColl[j].xDel(pColl[j].pUser);
110922 sqlite3DbFree(db, pColl);
111780 CollSeq *pColl;
111804 pColl = sqlite3FindCollSeq(db, (u8)enc2, zName, 0);
111805 if( pColl && pColl->xCmp ){
111819 if( (pColl->enc & ~SQLITE_UTF16_ALIGNED)==enc2 ){
111824 if( p->enc==pColl->enc ){
111834 pColl = sqlite3FindCollSeq(db, (u8)enc2, zName, 1);
111835 if( pColl==0 ) return SQLITE_NOMEM;
111836 pColl->xCmp = xCompare;
111837 pColl->pUser = pCtx;
111838 pColl->xDel = xDel;
111839 pColl->enc = (u8)(enc2 | (enc & SQLITE_UTF16_ALIGNED));
111840 pColl->type = collType;