mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 23:08:31 +00:00
Remove trailing whitespace from all files (#497)
This commit is contained in:
parent
d3f3cb7ab4
commit
7e2eae5c15
356 changed files with 41701 additions and 41680 deletions
104
third_party/sqlite3/analyze.c
vendored
104
third_party/sqlite3/analyze.c
vendored
|
@ -209,9 +209,9 @@ static void openStatTable(
|
|||
aCreateTbl[i] = 0;
|
||||
if( (pStat = sqlite3FindTable(db, zTab, pDb->zDbSName))==0 ){
|
||||
if( i<nToOpen ){
|
||||
/* The sqlite_statN table does not exist. Create it. Note that a
|
||||
** side-effect of the CREATE TABLE statement is to leave the rootpage
|
||||
** of the new table in register pParse->regRoot. This is important
|
||||
/* The sqlite_statN table does not exist. Create it. Note that a
|
||||
** side-effect of the CREATE TABLE statement is to leave the rootpage
|
||||
** of the new table in register pParse->regRoot. This is important
|
||||
** because the OpenWrite opcode below will be needing it. */
|
||||
sqlite3NestedParse(pParse,
|
||||
"CREATE TABLE %Q.%s(%s)", pDb->zDbSName, zTab, aTable[i].zCols
|
||||
|
@ -220,7 +220,7 @@ static void openStatTable(
|
|||
aCreateTbl[i] = OPFLAG_P2ISREG;
|
||||
}
|
||||
}else{
|
||||
/* The table already exists. If zWhere is not NULL, delete all entries
|
||||
/* The table already exists. If zWhere is not NULL, delete all entries
|
||||
** associated with the table zWhere. If zWhere is NULL, delete the
|
||||
** entire contents of the table. */
|
||||
aRoot[i] = pStat->tnum;
|
||||
|
@ -278,7 +278,7 @@ struct StatSample {
|
|||
int iCol; /* If !isPSample, the reason for inclusion */
|
||||
u32 iHash; /* Tiebreaker hash */
|
||||
#endif
|
||||
};
|
||||
};
|
||||
struct StatAccum {
|
||||
sqlite3 *db; /* Database connection, for malloc() */
|
||||
tRowcnt nEst; /* Estimated number of rows */
|
||||
|
@ -382,7 +382,7 @@ static void statAccumDestructor(void *pOld){
|
|||
** N: The number of columns in the index including the rowid/pk (note 1)
|
||||
** K: The number of columns in the index excluding the rowid/pk.
|
||||
** C: Estimated number of rows in the index
|
||||
** L: A limit on the number of rows to scan, or 0 for no-limit
|
||||
** L: A limit on the number of rows to scan, or 0 for no-limit
|
||||
**
|
||||
** Note 1: In the special case of the covering index that implements a
|
||||
** WITHOUT ROWID table, N is the number of PRIMARY KEY columns, not the
|
||||
|
@ -393,7 +393,7 @@ static void statAccumDestructor(void *pOld){
|
|||
** PRIMARY KEY of the table. The covering index that implements the
|
||||
** original WITHOUT ROWID table as N==K as a special case.
|
||||
**
|
||||
** This routine allocates the StatAccum object in heap memory. The return
|
||||
** This routine allocates the StatAccum object in heap memory. The return
|
||||
** value is a pointer to the StatAccum object. The datatype of the
|
||||
** return value is BLOB, but it is really just a pointer to the StatAccum
|
||||
** object.
|
||||
|
@ -424,7 +424,7 @@ static void statInit(
|
|||
assert( nKeyCol>0 );
|
||||
|
||||
/* Allocate the space required for the StatAccum object */
|
||||
n = sizeof(*p)
|
||||
n = sizeof(*p)
|
||||
+ sizeof(tRowcnt)*nColUp /* StatAccum.anEq */
|
||||
+ sizeof(tRowcnt)*nColUp; /* StatAccum.anDLt */
|
||||
#ifdef SQLITE_ENABLE_STAT4
|
||||
|
@ -461,7 +461,7 @@ static void statInit(
|
|||
p->nPSample = (tRowcnt)(p->nEst/(mxSample/3+1) + 1);
|
||||
p->current.anLt = &p->current.anEq[nColUp];
|
||||
p->iPrn = 0x689e962d*(u32)nCol ^ 0xd0944565*(u32)sqlite3_value_int(argv[2]);
|
||||
|
||||
|
||||
/* Set up the StatAccum.a[] and aBest[] arrays */
|
||||
p->a = (struct StatSample*)&p->current.anLt[nColUp];
|
||||
p->aBest = &p->a[mxSample];
|
||||
|
@ -472,7 +472,7 @@ static void statInit(
|
|||
p->a[i].anDLt = (tRowcnt *)pSpace; pSpace += (sizeof(tRowcnt) * nColUp);
|
||||
}
|
||||
assert( (pSpace - (u8*)p)==n );
|
||||
|
||||
|
||||
for(i=0; i<nCol; i++){
|
||||
p->aBest[i].iCol = i;
|
||||
}
|
||||
|
@ -499,19 +499,19 @@ static const FuncDef statInitFuncdef = {
|
|||
|
||||
#ifdef SQLITE_ENABLE_STAT4
|
||||
/*
|
||||
** pNew and pOld are both candidate non-periodic samples selected for
|
||||
** the same column (pNew->iCol==pOld->iCol). Ignoring this column and
|
||||
** pNew and pOld are both candidate non-periodic samples selected for
|
||||
** the same column (pNew->iCol==pOld->iCol). Ignoring this column and
|
||||
** considering only any trailing columns and the sample hash value, this
|
||||
** function returns true if sample pNew is to be preferred over pOld.
|
||||
** In other words, if we assume that the cardinalities of the selected
|
||||
** column for pNew and pOld are equal, is pNew to be preferred over pOld.
|
||||
**
|
||||
** This function assumes that for each argument sample, the contents of
|
||||
** the anEq[] array from pSample->anEq[pSample->iCol+1] onwards are valid.
|
||||
** the anEq[] array from pSample->anEq[pSample->iCol+1] onwards are valid.
|
||||
*/
|
||||
static int sampleIsBetterPost(
|
||||
StatAccum *pAccum,
|
||||
StatSample *pNew,
|
||||
StatAccum *pAccum,
|
||||
StatSample *pNew,
|
||||
StatSample *pOld
|
||||
){
|
||||
int nCol = pAccum->nCol;
|
||||
|
@ -531,11 +531,11 @@ static int sampleIsBetterPost(
|
|||
** Return true if pNew is to be preferred over pOld.
|
||||
**
|
||||
** This function assumes that for each argument sample, the contents of
|
||||
** the anEq[] array from pSample->anEq[pSample->iCol] onwards are valid.
|
||||
** the anEq[] array from pSample->anEq[pSample->iCol] onwards are valid.
|
||||
*/
|
||||
static int sampleIsBetter(
|
||||
StatAccum *pAccum,
|
||||
StatSample *pNew,
|
||||
StatAccum *pAccum,
|
||||
StatSample *pNew,
|
||||
StatSample *pOld
|
||||
){
|
||||
tRowcnt nEqNew = pNew->anEq[pNew->iCol];
|
||||
|
@ -573,7 +573,7 @@ static void sampleInsert(StatAccum *p, StatSample *pNew, int nEqZero){
|
|||
StatSample *pUpgrade = 0;
|
||||
assert( pNew->anEq[pNew->iCol]>0 );
|
||||
|
||||
/* This sample is being added because the prefix that ends in column
|
||||
/* This sample is being added because the prefix that ends in column
|
||||
** iCol occurs many times in the table. However, if we have already
|
||||
** added a sample that shares this prefix, there is no need to add
|
||||
** this one. Instead, upgrade the priority of the highest priority
|
||||
|
@ -615,7 +615,7 @@ static void sampleInsert(StatAccum *p, StatSample *pNew, int nEqZero){
|
|||
/* The "rows less-than" for the rowid column must be greater than that
|
||||
** for the last sample in the p->a[] array. Otherwise, the samples would
|
||||
** be out of order. */
|
||||
assert( p->nSample==0
|
||||
assert( p->nSample==0
|
||||
|| pNew->anLt[p->nCol-1] > p->a[p->nSample-1].anLt[p->nCol-1] );
|
||||
|
||||
/* Insert the new sample */
|
||||
|
@ -822,9 +822,9 @@ static void statGet(
|
|||
/* STAT4 has a parameter on this routine. */
|
||||
int eCall = sqlite3_value_int(argv[1]);
|
||||
assert( argc==2 );
|
||||
assert( eCall==STAT_GET_STAT1 || eCall==STAT_GET_NEQ
|
||||
assert( eCall==STAT_GET_STAT1 || eCall==STAT_GET_NEQ
|
||||
|| eCall==STAT_GET_ROWID || eCall==STAT_GET_NLT
|
||||
|| eCall==STAT_GET_NDLT
|
||||
|| eCall==STAT_GET_NDLT
|
||||
);
|
||||
assert( eCall==STAT_GET_STAT1 || p->mxSample );
|
||||
if( eCall==STAT_GET_STAT1 )
|
||||
|
@ -835,20 +835,20 @@ static void statGet(
|
|||
/* Return the value to store in the "stat" column of the sqlite_stat1
|
||||
** table for this index.
|
||||
**
|
||||
** The value is a string composed of a list of integers describing
|
||||
** the index. The first integer in the list is the total number of
|
||||
** entries in the index. There is one additional integer in the list
|
||||
** The value is a string composed of a list of integers describing
|
||||
** the index. The first integer in the list is the total number of
|
||||
** entries in the index. There is one additional integer in the list
|
||||
** for each indexed column. This additional integer is an estimate of
|
||||
** the number of rows matched by a equality query on the index using
|
||||
** a key with the corresponding number of fields. In other words,
|
||||
** if the index is on columns (a,b) and the sqlite_stat1 value is
|
||||
** if the index is on columns (a,b) and the sqlite_stat1 value is
|
||||
** "100 10 2", then SQLite estimates that:
|
||||
**
|
||||
** * the index contains 100 rows,
|
||||
** * "WHERE a=?" matches 10 rows, and
|
||||
** * "WHERE a=? AND b=?" matches 2 rows.
|
||||
**
|
||||
** If D is the count of distinct values and K is the total number of
|
||||
** If D is the count of distinct values and K is the total number of
|
||||
** rows, then each estimate is computed as:
|
||||
**
|
||||
** I = (K+D-1)/D
|
||||
|
@ -862,7 +862,7 @@ static void statGet(
|
|||
return;
|
||||
}
|
||||
|
||||
sqlite3_snprintf(24, zRet, "%llu",
|
||||
sqlite3_snprintf(24, zRet, "%llu",
|
||||
p->nSkipAhead ? (u64)p->nEst : (u64)p->nRow);
|
||||
z = zRet + sqlite3Strlen30(zRet);
|
||||
for(i=0; i<p->nKeyCol; i++){
|
||||
|
@ -899,7 +899,7 @@ static void statGet(
|
|||
case STAT_GET_NEQ: aCnt = p->a[p->iGet].anEq; break;
|
||||
case STAT_GET_NLT: aCnt = p->a[p->iGet].anLt; break;
|
||||
default: {
|
||||
aCnt = p->a[p->iGet].anDLt;
|
||||
aCnt = p->a[p->iGet].anDLt;
|
||||
p->iGet++;
|
||||
break;
|
||||
}
|
||||
|
@ -1008,7 +1008,7 @@ static void analyzeOneTable(
|
|||
int regStat1 = iMem++; /* Value for the stat column of sqlite_stat1 */
|
||||
int regPrev = iMem; /* MUST BE LAST (see below) */
|
||||
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||
Table *pStat1 = 0;
|
||||
Table *pStat1 = 0;
|
||||
#endif
|
||||
|
||||
pParse->nMem = MAX(pParse->nMem, iMem);
|
||||
|
@ -1047,7 +1047,7 @@ static void analyzeOneTable(
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Establish a read-lock on the table at the shared-cache level.
|
||||
/* Establish a read-lock on the table at the shared-cache level.
|
||||
** Open a read-only cursor on the table. Also allocate a cursor number
|
||||
** to use for scanning indexes (iIdxCur). No index cursor is opened at
|
||||
** this time though. */
|
||||
|
@ -1113,9 +1113,9 @@ static void analyzeOneTable(
|
|||
** end_of_scan:
|
||||
*/
|
||||
|
||||
/* Make sure there are enough memory cells allocated to accommodate
|
||||
/* Make sure there are enough memory cells allocated to accommodate
|
||||
** the regPrev array and a trailing rowid (the rowid slot is required
|
||||
** when building a record to insert into the sample column of
|
||||
** when building a record to insert into the sample column of
|
||||
** the sqlite_stat4 table. */
|
||||
pParse->nMem = MAX(pParse->nMem, regPrev+nColTest);
|
||||
|
||||
|
@ -1126,7 +1126,7 @@ static void analyzeOneTable(
|
|||
VdbeComment((v, "%s", pIdx->zName));
|
||||
|
||||
/* Invoke the stat_init() function. The arguments are:
|
||||
**
|
||||
**
|
||||
** (1) the number of columns in the index including the rowid
|
||||
** (or for a WITHOUT ROWID table, the number of PK columns),
|
||||
** (2) the number of columns in the key without the rowid/pk
|
||||
|
@ -1183,7 +1183,7 @@ static void analyzeOneTable(
|
|||
addrNextRow = sqlite3VdbeCurrentAddr(v);
|
||||
if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
|
||||
/* For a single-column UNIQUE index, once we have found a non-NULL
|
||||
** row, we know that all the rest will be distinct, so skip
|
||||
** row, we know that all the rest will be distinct, so skip
|
||||
** subsequent distinctness tests. */
|
||||
sqlite3VdbeAddOp2(v, OP_NotNull, regPrev, endDistinctTest);
|
||||
VdbeCoverage(v);
|
||||
|
@ -1193,15 +1193,15 @@ static void analyzeOneTable(
|
|||
sqlite3VdbeAddOp2(v, OP_Integer, i, regChng);
|
||||
sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regTemp);
|
||||
analyzeVdbeCommentIndexWithColumnName(v,pIdx,i);
|
||||
aGotoChng[i] =
|
||||
aGotoChng[i] =
|
||||
sqlite3VdbeAddOp4(v, OP_Ne, regTemp, 0, regPrev+i, pColl, P4_COLLSEQ);
|
||||
sqlite3VdbeChangeP5(v, SQLITE_NULLEQ);
|
||||
VdbeCoverage(v);
|
||||
}
|
||||
sqlite3VdbeAddOp2(v, OP_Integer, nColTest, regChng);
|
||||
sqlite3VdbeGoto(v, endDistinctTest);
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** chng_addr_0:
|
||||
** regPrev(0) = idx(0)
|
||||
|
@ -1218,7 +1218,7 @@ static void analyzeOneTable(
|
|||
sqlite3VdbeResolveLabel(v, endDistinctTest);
|
||||
sqlite3DbFree(db, aGotoChng);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** chng_addr_N:
|
||||
** regRowid = idx(rowid) // STAT4 only
|
||||
|
@ -1537,7 +1537,7 @@ static void decodeIntArray(
|
|||
|
||||
/*
|
||||
** This callback is invoked once for each index when reading the
|
||||
** sqlite_stat1 table.
|
||||
** sqlite_stat1 table.
|
||||
**
|
||||
** argv[0] = name of the table
|
||||
** argv[1] = name of the index (might be NULL)
|
||||
|
@ -1575,7 +1575,7 @@ static int analysisLoader(void *pData, int argc, char **argv, char **NotUsed){
|
|||
tRowcnt *aiRowEst = 0;
|
||||
int nCol = pIndex->nKeyCol+1;
|
||||
#ifdef SQLITE_ENABLE_STAT4
|
||||
/* Index.aiRowEst may already be set here if there are duplicate
|
||||
/* Index.aiRowEst may already be set here if there are duplicate
|
||||
** sqlite_stat1 entries for this index. In that case just clobber
|
||||
** the old data with the new instead of allocating a new array. */
|
||||
if( pIndex->aiRowEst==0 ){
|
||||
|
@ -1632,7 +1632,7 @@ void sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx){
|
|||
#ifdef SQLITE_ENABLE_STAT4
|
||||
/*
|
||||
** Populate the pIdx->aAvgEq[] array based on the samples currently
|
||||
** stored in pIdx->aSample[].
|
||||
** stored in pIdx->aSample[].
|
||||
*/
|
||||
static void initAvgEq(Index *pIdx){
|
||||
if( pIdx ){
|
||||
|
@ -1668,12 +1668,12 @@ static void initAvgEq(Index *pIdx){
|
|||
pIdx->nRowEst0 = nRow;
|
||||
|
||||
/* Set nSum to the number of distinct (iCol+1) field prefixes that
|
||||
** occur in the stat4 table for this index. Set sumEq to the sum of
|
||||
** the nEq values for column iCol for the same set (adding the value
|
||||
** occur in the stat4 table for this index. Set sumEq to the sum of
|
||||
** the nEq values for column iCol for the same set (adding the value
|
||||
** only once where there exist duplicate prefixes). */
|
||||
for(i=0; i<nSample; i++){
|
||||
if( i==(pIdx->nSample-1)
|
||||
|| aSample[i].anDLt[iCol]!=aSample[i+1].anDLt[iCol]
|
||||
|| aSample[i].anDLt[iCol]!=aSample[i+1].anDLt[iCol]
|
||||
){
|
||||
sumEq += aSample[i].anEq[iCol];
|
||||
nSum100 += 100;
|
||||
|
@ -1801,7 +1801,7 @@ static int loadStatTbl(
|
|||
if( zIndex==0 ) continue;
|
||||
pIdx = findIndexOrPrimaryKey(db, zIndex, zDb);
|
||||
if( pIdx==0 ) continue;
|
||||
/* This next condition is true if data has already been loaded from
|
||||
/* This next condition is true if data has already been loaded from
|
||||
** the sqlite_stat4 table. */
|
||||
nCol = pIdx->nSampleCol;
|
||||
if( pIdx!=pPrevIdx ){
|
||||
|
@ -1836,7 +1836,7 @@ static int loadStatTbl(
|
|||
}
|
||||
|
||||
/*
|
||||
** Load content from the sqlite_stat4 table into
|
||||
** Load content from the sqlite_stat4 table into
|
||||
** the Index.aSample[] arrays of all indices.
|
||||
*/
|
||||
static int loadStat4(sqlite3 *db, const char *zDb){
|
||||
|
@ -1845,7 +1845,7 @@ static int loadStat4(sqlite3 *db, const char *zDb){
|
|||
assert( db->lookaside.bDisable );
|
||||
if( sqlite3FindTable(db, "sqlite_stat4", zDb) ){
|
||||
rc = loadStatTbl(db,
|
||||
"SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx",
|
||||
"SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx",
|
||||
"SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4",
|
||||
zDb
|
||||
);
|
||||
|
@ -1861,11 +1861,11 @@ static int loadStat4(sqlite3 *db, const char *zDb){
|
|||
** Index.aSample[] arrays.
|
||||
**
|
||||
** If the sqlite_stat1 table is not present in the database, SQLITE_ERROR
|
||||
** is returned. In this case, even if SQLITE_ENABLE_STAT4 was defined
|
||||
** during compilation and the sqlite_stat4 table is present, no data is
|
||||
** is returned. In this case, even if SQLITE_ENABLE_STAT4 was defined
|
||||
** during compilation and the sqlite_stat4 table is present, no data is
|
||||
** read from it.
|
||||
**
|
||||
** If SQLITE_ENABLE_STAT4 was defined during compilation and the
|
||||
** If SQLITE_ENABLE_STAT4 was defined during compilation and the
|
||||
** sqlite_stat4 table is not present in the database, SQLITE_ERROR is
|
||||
** returned. However, in this case, data is read from the sqlite_stat1
|
||||
** table (if it is present) before returning.
|
||||
|
@ -1903,7 +1903,7 @@ int sqlite3AnalysisLoad(sqlite3 *db, int iDb){
|
|||
sInfo.db = db;
|
||||
sInfo.zDatabase = db->aDb[iDb].zDbSName;
|
||||
if( sqlite3FindTable(db, "sqlite_stat1", sInfo.zDatabase)!=0 ){
|
||||
zSql = sqlite3MPrintf(db,
|
||||
zSql = sqlite3MPrintf(db,
|
||||
"SELECT tbl,idx,stat FROM %Q.sqlite_stat1", sInfo.zDatabase);
|
||||
if( zSql==0 ){
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue