line |
true |
false |
branch |
28
|
0 |
701 |
if( pNew==0 ){ |
35
|
554 |
147 |
if( pToken ){ |
43
|
44 |
103 |
if( pLeft && pRight ){ |
|
34 |
10 |
if( pLeft && pRight ){ |
60
|
83 |
0 |
if( pExpr && pRight->z && pLeft->z ){ |
|
82 |
1 |
if( pExpr && pRight->z && pLeft->z ){ |
|
82 |
0 |
if( pExpr && pRight->z && pLeft->z ){ |
61
|
82 |
0 |
if( pLeft->dyn==0 && pRight->dyn==0 ){ |
|
82 |
0 |
if( pLeft->dyn==0 && pRight->dyn==0 ){ |
77
|
0 |
39 |
if( pNew==0 ){ |
83
|
36 |
3 |
if( pToken ){ |
97
|
2600 |
740 |
if( p==0 ) return; |
98
|
30 |
710 |
if( p->span.dyn ) sqliteFree((char*)p->span.z); |
99
|
30 |
710 |
if( p->token.dyn ) sqliteFree((char*)p->token.z); |
122
|
60 |
0 |
if( p==0 ) return 0; |
124
|
0 |
0 |
if( pNew==0 ) return 0; |
126
|
0 |
0 |
if( p->token.z!=0 ){ |
140
|
0 |
60 |
if( pTo->dyn ) sqliteFree((char*)pTo->z); |
141
|
60 |
0 |
if( pFrom->z ){ |
153
|
30 |
0 |
if( p==0 ) return 0; |
155
|
0 |
0 |
if( pNew==0 ) return 0; |
158
|
0 |
0 |
if( pItem==0 ){ |
162
|
0 |
0 |
for(i=0; inExpr; i++, pItem++){ |
165
|
0 |
0 |
if( pOldExpr->span.z!=0 && pNewExpr ){ |
|
0 |
0 |
if( pOldExpr->span.z!=0 && pNewExpr ){ |
184
|
0 |
0 |
if( p==0 ) return 0; |
185
|
0 |
0 |
nByte = sizeof(*p) + (p->nSrc>0 ? sizeof(p->a[0]) * (p->nSrc-1) : 0); |
187
|
0 |
0 |
if( pNew==0 ) return 0; |
189
|
0 |
0 |
for(i=0; inSrc; i++){ |
207
|
0 |
0 |
if( p==0 ) return 0; |
209
|
0 |
0 |
if( pNew==0 ) return 0; |
212
|
0 |
0 |
if( pNew->a==0 ) return 0; |
213
|
0 |
0 |
for(i=0; inId; i++){ |
223
|
0 |
0 |
if( p==0 ) return 0; |
225
|
0 |
0 |
if( pNew==0 ) return 0; |
249
|
262 |
383 |
if( pList==0 ){ |
251
|
0 |
262 |
if( pList==0 ){ |
257
|
322 |
323 |
if( pList->nAlloc<=pList->nExpr ){ |
260
|
0 |
322 |
if( pList->a==0 ){ |
267
|
15 |
630 |
if( pExpr || pName ){ |
|
0 |
15 |
if( pExpr || pName ){ |
271
|
42 |
588 |
if( pName ){ |
284
|
964 |
262 |
if( pList==0 ) return; |
287
|
630 |
262 |
for(i=0; inExpr; i++){ |
317
|
33 |
3 |
if( p->pLeft && !sqliteExprIsConstant(p->pLeft) ) return 0; |
|
33 |
0 |
if( p->pLeft && !sqliteExprIsConstant(p->pLeft) ) return 0; |
318
|
0 |
3 |
if( p->pRight && !sqliteExprIsConstant(p->pRight) ) return 0; |
|
0 |
0 |
if( p->pRight && !sqliteExprIsConstant(p->pRight) ) return 0; |
319
|
3 |
0 |
if( p->pList ){ |
321
|
6 |
0 |
for(i=0; ipList->nExpr; i++){ |
322
|
3 |
3 |
if( !sqliteExprIsConstant(p->pList->a[i].pExpr) ) return 0; |
325
|
0 |
0 |
return p->pLeft!=0 || p->pRight!=0 || (p->pList && p->pList->nExpr>0); |
|
0 |
0 |
return p->pLeft!=0 || p->pRight!=0 || (p->pList && p->pList->nExpr>0); |
|
0 |
0 |
return p->pLeft!=0 || p->pRight!=0 || (p->pList && p->pList->nExpr>0); |
|
0 |
0 |
return p->pLeft!=0 || p->pRight!=0 || (p->pList && p->pList->nExpr>0); |
340
|
0 |
0 |
if( sqliteFitsIn32Bits(p->token.z) ){ |
349
|
0 |
0 |
if( n>0 && z[0]=='-' ){ z++; n--; } |
|
0 |
0 |
if( n>0 && z[0]=='-' ){ z++; n--; } |
350
|
0 |
0 |
while( n>0 && *z && isdigit(*z) ){ z++; n--; } |
|
0 |
0 |
while( n>0 && *z && isdigit(*z) ){ z++; n--; } |
|
0 |
0 |
while( n>0 && *z && isdigit(*z) ){ z++; n--; } |
351
|
0 |
0 |
if( n==0 && sqliteFitsIn32Bits(p->token.z) ){ |
|
0 |
0 |
if( n==0 && sqliteFitsIn32Bits(p->token.z) ){ |
362
|
0 |
0 |
if( sqliteExprIsInteger(p->pLeft, &v) ){ |
377
|
0 |
0 |
if( sqliteStrICmp(z, "_ROWID_")==0 ) return 1; |
378
|
0 |
0 |
if( sqliteStrICmp(z, "ROWID")==0 ) return 1; |
379
|
0 |
0 |
if( sqliteStrICmp(z, "OID")==0 ) return 1; |
427
|
0 |
389 |
if( pDbToken && pDbToken->z ){ |
|
0 |
0 |
if( pDbToken && pDbToken->z ){ |
433
|
7 |
382 |
if( pTableToken && pTableToken->z ){ |
|
7 |
0 |
if( pTableToken && pTableToken->z ){ |
442
|
0 |
389 |
if( sqlite_malloc_failed ){ |
448
|
396 |
389 |
for(i=0; inSrc; i++){ |
453
|
0 |
396 |
if( pTab==0 ) continue; |
455
|
13 |
383 |
if( zTab ){ |
456
|
0 |
13 |
if( pItem->zAlias ){ |
458
|
0 |
0 |
if( sqliteStrICmp(zTabName, zTab)!=0 ) continue; |
461
|
13 |
0 |
if( zTabName==0 || sqliteStrICmp(zTabName, zTab)!=0 ) continue; |
|
6 |
7 |
if( zTabName==0 || sqliteStrICmp(zTabName, zTab)!=0 ) continue; |
462
|
0 |
7 |
if( zDb!=0 && sqliteStrICmp(db->aDb[pTab->iDb].zName, zDb)!=0 ){ |
|
0 |
0 |
if( zDb!=0 && sqliteStrICmp(db->aDb[pTab->iDb].zName, zDb)!=0 ){ |
467
|
389 |
1 |
if( 0==(cntTab++) ){ |
471
|
996 |
1 |
for(j=0, pCol=pTab->aCol; jnCol; j++, pCol++){ |
472
|
389 |
607 |
if( sqliteStrICmp(pCol->zName, zCol)==0 ){ |
477
|
389 |
0 |
pExpr->iColumn = j==pTab->iPKey ? -1 : j; |
487
|
389 |
0 |
if( zDb==0 && zTab!=0 && cnt==0 && pParse->trigStack!=0 ){ |
|
7 |
382 |
if( zDb==0 && zTab!=0 && cnt==0 && pParse->trigStack!=0 ){ |
|
0 |
7 |
if( zDb==0 && zTab!=0 && cnt==0 && pParse->trigStack!=0 ){ |
|
0 |
0 |
if( zDb==0 && zTab!=0 && cnt==0 && pParse->trigStack!=0 ){ |
490
|
0 |
0 |
if( pTriggerStack->newIdx != -1 && sqliteStrICmp("new", zTab) == 0 ){ |
|
0 |
0 |
if( pTriggerStack->newIdx != -1 && sqliteStrICmp("new", zTab) == 0 ){ |
494
|
0 |
0 |
}else if( pTriggerStack->oldIdx != -1 && sqliteStrICmp("old", zTab) == 0 ){ |
|
0 |
0 |
}else if( pTriggerStack->oldIdx != -1 && sqliteStrICmp("old", zTab) == 0 ){ |
500
|
0 |
0 |
if( pTab ){ |
506
|
0 |
0 |
for(j=0; j < pTab->nCol; j++, pCol++) { |
507
|
0 |
0 |
if( sqliteStrICmp(pCol->zName, zCol)==0 ){ |
509
|
0 |
0 |
pExpr->iColumn = j==pTab->iPKey ? -1 : j; |
520
|
0 |
389 |
if( cnt==0 && cntTab==1 && sqliteIsRowid(zCol) ){ |
|
0 |
0 |
if( cnt==0 && cntTab==1 && sqliteIsRowid(zCol) ){ |
|
0 |
0 |
if( cnt==0 && cntTab==1 && sqliteIsRowid(zCol) ){ |
538
|
0 |
389 |
if( cnt==0 && pEList!=0 ){ |
|
0 |
0 |
if( cnt==0 && pEList!=0 ){ |
539
|
0 |
0 |
for(j=0; jnExpr; j++){ |
541
|
0 |
0 |
if( zAs!=0 && sqliteStrICmp(zAs, zCol)==0 ){ |
|
0 |
0 |
if( zAs!=0 && sqliteStrICmp(zAs, zCol)==0 ){ |
560
|
0 |
389 |
if( cnt==0 && zTab==0 && pColumnToken->z[0]=='"' ){ |
|
0 |
0 |
if( cnt==0 && zTab==0 && pColumnToken->z[0]=='"' ){ |
|
0 |
0 |
if( cnt==0 && zTab==0 && pColumnToken->z[0]=='"' ){ |
569
|
0 |
389 |
if( cnt!=1 ){ |
572
|
0 |
0 |
zErr = cnt==0 ? "no such column: %s" : "ambiguous column name: %s"; |
573
|
0 |
0 |
if( zDb ){ |
575
|
0 |
0 |
}else if( zTab ){ |
637
|
684 |
0 |
if( pExpr==0 || pSrcList==0 ) return 0; |
|
0 |
684 |
if( pExpr==0 || pSrcList==0 ) return 0; |
638
|
547 |
684 |
for(i=0; inSrc; i++){ |
647
|
77 |
0 |
if( pExpr->token.z[0]=='\'' ) break; |
653
|
0 |
382 |
if( lookupName(pParse, 0, 0, &pExpr->token, pSrcList, pEList, pExpr) ){ |
669
|
7 |
0 |
if( pRight->op==TK_ID ){ |
679
|
0 |
7 |
if( lookupName(pParse, pDb, pTable, pColumn, pSrcList, 0, pExpr) ){ |
687
|
0 |
6 |
if( v==0 ) return 1; |
688
|
0 |
6 |
if( sqliteExprResolveIds(pParse, pSrcList, pEList, pExpr->pLeft) ){ |
691
|
0 |
6 |
if( pExpr->pSelect ){ |
701
|
6 |
0 |
}else if( pExpr->pList ){ |
708
|
12 |
6 |
for(i=0; ipList->nExpr; i++){ |
710
|
0 |
12 |
if( !sqliteExprIsConstant(pE2) ){ |
715
|
0 |
12 |
if( sqliteExprCheck(pParse, pE2, 0, 0) ){ |
720
|
12 |
6 |
for(i=0; ipList->nExpr; i++){ |
722
|
12 |
0 |
switch( pE2->op ){ |
750
|
0 |
0 |
if( sqliteSelect(pParse, pExpr->pSelect, SRT_Mem, pExpr->iColumn,0,0,0) ){ |
758
|
30 |
182 |
if( pExpr->pLeft |
759
|
0 |
30 |
&& sqliteExprResolveIds(pParse, pSrcList, pEList, pExpr->pLeft) ){ |
762
|
26 |
186 |
if( pExpr->pRight |
763
|
0 |
26 |
&& sqliteExprResolveIds(pParse, pSrcList, pEList, pExpr->pRight) ){ |
766
|
39 |
173 |
if( pExpr->pList ){ |
769
|
32 |
39 |
for(i=0; inExpr; i++){ |
771
|
0 |
32 |
if( sqliteExprResolveIds(pParse, pSrcList, pEList, pArg) ){ |
825
|
0 |
740 |
if( pExpr==0 ) return 0; |
826
|
39 |
701 |
switch( pExpr->op ){ |
830
|
39 |
0 |
int n = pExpr->pList ? pExpr->pList->nExpr : 0; /* Number of arguments */ |
841
|
0 |
39 |
if( pDef==0 ){ |
843
|
0 |
0 |
if( pDef==0 ){ |
851
|
15 |
24 |
if( is_agg && !allowAgg ){ |
|
0 |
15 |
if( is_agg && !allowAgg ){ |
855
|
0 |
39 |
}else if( no_such_func ){ |
858
|
0 |
39 |
}else if( wrong_num_args ){ |
863
|
15 |
24 |
if( is_agg ){ |
865
|
15 |
0 |
if( pIsAgg ) *pIsAgg = 1; |
867
|
71 |
0 |
for(i=0; nErr==0 && i
|
|
32 |
39 |
for(i=0; nErr==0 && i
|
868
|
26 |
6 |
nErr = sqliteExprCheck(pParse, pExpr->pList->a[i].pExpr, |
|
21 |
5 |
nErr = sqliteExprCheck(pParse, pExpr->pList->a[i].pExpr, |
871
|
39 |
0 |
if( pDef==0 ){ |
873
|
0 |
39 |
}else if( pDef->dataType>=0 ){ |
874
|
0 |
0 |
if( pDef->dataType
|
880
|
0 |
39 |
}else if( pDef->dataType==SQLITE_ARGS ){ |
882
|
0 |
0 |
for(i=0; i
|
883
|
0 |
0 |
if( sqliteExprType(pExpr->pList->a[i].pExpr)==SQLITE_SO_NUM ){ |
888
|
36 |
3 |
}else if( pDef->dataType==SQLITE_NUMERIC ){ |
895
|
36 |
704 |
if( pExpr->pLeft ){ |
898
|
740 |
0 |
if( nErr==0 && pExpr->pRight ){ |
|
26 |
714 |
if( nErr==0 && pExpr->pRight ){ |
901
|
740 |
0 |
if( nErr==0 && pExpr->pList ){ |
|
45 |
695 |
if( nErr==0 && pExpr->pList ){ |
904
|
89 |
0 |
for(i=0; nErr==0 && i
|
|
44 |
45 |
for(i=0; nErr==0 && i
|
923
|
0 |
155 |
if( p==0 ) return SQLITE_SO_NUM; |
924
|
156 |
0 |
while( p ) switch( p->op ){ |
962
|
22 |
1 |
if( sqliteExprType(p->pLeft)==SQLITE_SO_NUM ){ |
985
|
0 |
0 |
if( p->pRight && sqliteExprType(p->pRight)==SQLITE_SO_NUM ){ |
|
0 |
0 |
if( p->pRight && sqliteExprType(p->pRight)==SQLITE_SO_NUM ){ |
988
|
0 |
0 |
if( p->pList ){ |
991
|
0 |
0 |
for(i=1; inExpr; i+=2){ |
992
|
0 |
0 |
if( sqliteExprType(pList->a[i].pExpr)==SQLITE_SO_NUM ){ |
1014
|
633 |
0 |
if( v==0 || pExpr==0 ) return; |
|
0 |
633 |
if( v==0 || pExpr==0 ) return; |
1042
|
3 |
368 |
if( pParse->useAgg ){ |
1044
|
368 |
0 |
}else if( pExpr->iColumn>=0 ){ |
1054
|
119 |
78 |
if( pExpr->op==TK_INTEGER && sqliteFitsIn32Bits(pExpr->token.z) ){ |
|
119 |
0 |
if( pExpr->op==TK_INTEGER && sqliteFitsIn32Bits(pExpr->token.z) ){ |
1078
|
0 |
0 |
if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){ |
|
0 |
0 |
if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){ |
1112
|
0 |
0 |
if( pExpr->pLeft->op==TK_FLOAT || pExpr->pLeft->op==TK_INTEGER ){ |
|
0 |
0 |
if( pExpr->pLeft->op==TK_FLOAT || pExpr->pLeft->op==TK_INTEGER ){ |
1116
|
0 |
0 |
if( pExpr->pLeft->op==TK_INTEGER && sqliteFitsIn32Bits(z) ){ |
|
0 |
0 |
if( pExpr->pLeft->op==TK_INTEGER && sqliteFitsIn32Bits(z) ){ |
1151
|
24 |
0 |
int nExpr = pList ? pList->nExpr : 0; |
1175
|
0 |
0 |
if( pExpr->pSelect ){ |
1211
|
0 |
0 |
if( pExpr->pLeft ){ |
1214
|
0 |
0 |
for(i=0; i
|
1216
|
0 |
0 |
if( pExpr->pLeft ){ |
1228
|
0 |
0 |
if( pExpr->pLeft ){ |
1231
|
0 |
0 |
if( pExpr->pRight ){ |
1240
|
0 |
0 |
if( !pParse->trigStack ){ |
1246
|
0 |
0 |
if( pExpr->iColumn == OE_Rollback || |
|
0 |
0 |
if( pExpr->iColumn == OE_Rollback || |
1247
|
0 |
0 |
pExpr->iColumn == OE_Abort || |
1278
|
0 |
39 |
if( pList==0 ) return 0; |
1281
|
32 |
39 |
for(pItem=pList->a, i=0; i
|
1283
|
0 |
32 |
if( includeTypes ){ |
1284
|
0 |
0 |
sqliteVdbeOp3(v, OP_String, 0, 0, |
1289
|
0 |
39 |
return includeTypes ? n*2 : n; |
1303
|
0 |
0 |
if( v==0 || pExpr==0 ) return; |
|
0 |
0 |
if( v==0 || pExpr==0 ) return; |
1340
|
0 |
0 |
if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){ |
|
0 |
0 |
if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){ |
1358
|
0 |
0 |
sqliteVdbeAddOp(v, OP_Goto, 0, jumpIfNull ? dest : addr+4); |
1359
|
0 |
0 |
if( pExpr->pSelect ){ |
1398
|
36 |
0 |
if( v==0 || pExpr==0 ) return; |
|
0 |
36 |
if( v==0 || pExpr==0 ) return; |
1433
|
23 |
0 |
if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){ |
|
1 |
22 |
if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){ |
1459
|
0 |
6 |
sqliteVdbeAddOp(v, OP_Goto, 0, jumpIfNull ? dest : addr+4); |
1460
|
0 |
6 |
if( pExpr->pSelect ){ |
1494
|
0 |
0 |
if( pA==0 ){ |
1496
|
0 |
0 |
}else if( pB==0 ){ |
1499
|
0 |
0 |
if( pA->op!=pB->op ) return 0; |
1500
|
0 |
0 |
if( !sqliteExprCompare(pA->pLeft, pB->pLeft) ) return 0; |
1501
|
0 |
0 |
if( !sqliteExprCompare(pA->pRight, pB->pRight) ) return 0; |
1502
|
0 |
0 |
if( pA->pList ){ |
1503
|
0 |
0 |
if( pB->pList==0 ) return 0; |
1504
|
0 |
0 |
if( pA->pList->nExpr!=pB->pList->nExpr ) return 0; |
1505
|
0 |
0 |
for(i=0; ipList->nExpr; i++){ |
1506
|
0 |
0 |
if( !sqliteExprCompare(pA->pList->a[i].pExpr, pB->pList->a[i].pExpr) ){ |
1510
|
0 |
0 |
}else if( pB->pList ){ |
1513
|
0 |
0 |
if( pA->pSelect || pB->pSelect ) return 0; |
|
0 |
0 |
if( pA->pSelect || pB->pSelect ) return 0; |
1514
|
0 |
0 |
if( pA->iTable!=pB->iTable || pA->iColumn!=pB->iColumn ) return 0; |
|
0 |
0 |
if( pA->iTable!=pB->iTable || pA->iColumn!=pB->iColumn ) return 0; |
1515
|
0 |
0 |
if( pA->token.z ){ |
1516
|
0 |
0 |
if( pB->token.z==0 ) return 0; |
1517
|
0 |
0 |
if( pB->token.n!=pA->token.n ) return 0; |
1518
|
0 |
0 |
if( sqliteStrNICmp(pA->token.z, pB->token.z, pB->token.n)!=0 ) return 0; |
1527
|
15 |
3 |
if( (pParse->nAgg & 0x7)==0 ){ |
1530
|
0 |
15 |
if( aAgg==0 ){ |
1555
|
0 |
20 |
if( pExpr==0 ) return 0; |
1559
|
4 |
3 |
for(i=0; inAgg; i++){ |
1560
|
1 |
3 |
if( aAgg[i].isAgg ) continue; |
1561
|
2 |
1 |
if( aAgg[i].pExpr->iTable==pExpr->iTable |
1562
|
2 |
0 |
&& aAgg[i].pExpr->iColumn==pExpr->iColumn ){ |
1566
|
3 |
2 |
if( i>=pParse->nAgg ){ |
1568
|
0 |
3 |
if( i<0 ) return 1; |
1577
|
2 |
15 |
for(i=0; inAgg; i++){ |
1578
|
2 |
0 |
if( !aAgg[i].isAgg ) continue; |
1579
|
0 |
0 |
if( sqliteExprCompare(aAgg[i].pExpr, pExpr) ){ |
1583
|
15 |
0 |
if( i>=pParse->nAgg ){ |
1585
|
0 |
15 |
if( i<0 ) return 1; |
1588
|
15 |
0 |
pParse->aAgg[i].pFunc = sqliteFindFunction(pParse->db, |
1596
|
0 |
0 |
if( pExpr->pLeft ){ |
1599
|
0 |
0 |
if( nErr==0 && pExpr->pRight ){ |
|
0 |
0 |
if( nErr==0 && pExpr->pRight ){ |
1602
|
0 |
0 |
if( nErr==0 && pExpr->pList ){ |
|
0 |
0 |
if( nErr==0 && pExpr->pList ){ |
1605
|
0 |
0 |
for(i=0; nErr==0 && i
|
|
0 |
0 |
for(i=0; nErr==0 && i
|
1639
|
278 |
717 |
if( p && !createFlag && nArg<0 ){ |
|
78 |
200 |
if( p && !createFlag && nArg<0 ){ |
|
0 |
78 |
if( p && !createFlag && nArg<0 ){ |
1640
|
0 |
0 |
while( p && p->xFunc==0 && p->xStep==0 ){ p = p->pNext; } |
|
0 |
0 |
while( p && p->xFunc==0 && p->xStep==0 ){ p = p->pNext; } |
|
0 |
0 |
while( p && p->xFunc==0 && p->xStep==0 ){ p = p->pNext; } |
1644
|
353 |
939 |
while( p && p->nArg!=nArg ){ |
|
297 |
56 |
while( p && p->nArg!=nArg ){ |
1645
|
172 |
125 |
if( p->nArg<0 && !createFlag && (p->xFunc || p->xStep) ) pMaybe = p; |
|
22 |
150 |
if( p->nArg<0 && !createFlag && (p->xFunc || p->xStep) ) pMaybe = p; |
|
12 |
10 |
if( p->nArg<0 && !createFlag && (p->xFunc || p->xStep) ) pMaybe = p; |
|
12 |
0 |
if( p->nArg<0 && !createFlag && (p->xFunc || p->xStep) ) pMaybe = p; |
1648
|
56 |
939 |
if( p && !createFlag && p->xFunc==0 && p->xStep==0 ){ |
|
56 |
0 |
if( p && !createFlag && p->xFunc==0 && p->xStep==0 ){ |
|
18 |
38 |
if( p && !createFlag && p->xFunc==0 && p->xStep==0 ){ |
|
0 |
18 |
if( p && !createFlag && p->xFunc==0 && p->xStep==0 ){ |
1651
|
939 |
56 |
if( p==0 && pMaybe ){ |
|
22 |
917 |
if( p==0 && pMaybe ){ |
1655
|
917 |
56 |
if( p==0 && createFlag && (p = sqliteMalloc(sizeof(*p)))!=0 ){ |
|
917 |
0 |
if( p==0 && createFlag && (p = sqliteMalloc(sizeof(*p)))!=0 ){ |
|
917 |
0 |
if( p==0 && createFlag && (p = sqliteMalloc(sizeof(*p)))!=0 ){ |
1658
|
200 |
717 |
p->dataType = pFirst ? pFirst->dataType : SQLITE_NUMERIC; |