mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Rearrange fields in the Parse object for a tighter packing, resulting in
an 8% size reduction on x64. FossilOrigin-Name: 3e1a3f68d7457ff708222a3448404b593f018fc2
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Performance\soptimizations\sin\ssqlite3PcacheFetch().
|
C Rearrange\sfields\sin\sthe\sParse\sobject\sfor\sa\stighter\spacking,\sresulting\sin\nan\s8%\ssize\sreduction\son\sx64.
|
||||||
D 2014-02-03T17:04:29.099
|
D 2014-02-04T15:55:25.100
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -224,7 +224,7 @@ F src/shell.c 24722d24d4ea8ca93db35e44db7308de786767ca
|
|||||||
F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b
|
F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b
|
||||||
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
|
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
|
||||||
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
|
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
|
||||||
F src/sqliteInt.h 22c8f7112f2fa8e778bbd9d331cbebff8c645574
|
F src/sqliteInt.h ee8b7647d02470e75b4fc0e8a06b2f178d994670
|
||||||
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
|
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
|
||||||
F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158
|
F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158
|
||||||
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
|
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
|
||||||
@@ -1152,7 +1152,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P 6c643e45c274e755dc5a1a65673df79261c774be
|
P b60cc11ef775c23a2245d9e7a00dab34013f3ccb
|
||||||
R 8b5419aed1d20751ed2fa03b47b5e0a6
|
R 9fefa46640582f27b969bb2001156b91
|
||||||
U drh
|
U drh
|
||||||
Z f3fb6a665960323d1a0ee233aafe4773
|
Z b3499e6545a6347f51724280bec4401e
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
b60cc11ef775c23a2245d9e7a00dab34013f3ccb
|
3e1a3f68d7457ff708222a3448404b593f018fc2
|
||||||
@@ -2358,22 +2358,23 @@ struct Parse {
|
|||||||
int nSet; /* Number of sets used so far */
|
int nSet; /* Number of sets used so far */
|
||||||
int nOnce; /* Number of OP_Once instructions so far */
|
int nOnce; /* Number of OP_Once instructions so far */
|
||||||
int nOpAlloc; /* Number of slots allocated for Vdbe.aOp[] */
|
int nOpAlloc; /* Number of slots allocated for Vdbe.aOp[] */
|
||||||
int nLabel; /* Number of labels used */
|
|
||||||
int *aLabel; /* Space to hold the labels */
|
|
||||||
int iFixedOp; /* Never back out opcodes iFixedOp-1 or earlier */
|
int iFixedOp; /* Never back out opcodes iFixedOp-1 or earlier */
|
||||||
int ckBase; /* Base register of data during check constraints */
|
int ckBase; /* Base register of data during check constraints */
|
||||||
int iPartIdxTab; /* Table corresponding to a partial index */
|
int iPartIdxTab; /* Table corresponding to a partial index */
|
||||||
int iCacheLevel; /* ColCache valid when aColCache[].iLevel<=iCacheLevel */
|
int iCacheLevel; /* ColCache valid when aColCache[].iLevel<=iCacheLevel */
|
||||||
int iCacheCnt; /* Counter used to generate aColCache[].lru values */
|
int iCacheCnt; /* Counter used to generate aColCache[].lru values */
|
||||||
|
int nLabel; /* Number of labels used */
|
||||||
|
int *aLabel; /* Space to hold the labels */
|
||||||
struct yColCache {
|
struct yColCache {
|
||||||
int iTable; /* Table cursor number */
|
int iTable; /* Table cursor number */
|
||||||
int iColumn; /* Table column number */
|
i16 iColumn; /* Table column number */
|
||||||
u8 tempReg; /* iReg is a temp register that needs to be freed */
|
u8 tempReg; /* iReg is a temp register that needs to be freed */
|
||||||
int iLevel; /* Nesting level */
|
int iLevel; /* Nesting level */
|
||||||
int iReg; /* Reg with value of this column. 0 means none. */
|
int iReg; /* Reg with value of this column. 0 means none. */
|
||||||
int lru; /* Least recently used entry has the smallest value */
|
int lru; /* Least recently used entry has the smallest value */
|
||||||
} aColCache[SQLITE_N_COLCACHE]; /* One for each column cache entry */
|
} aColCache[SQLITE_N_COLCACHE]; /* One for each column cache entry */
|
||||||
ExprList *pConstExpr;/* Constant expressions */
|
ExprList *pConstExpr;/* Constant expressions */
|
||||||
|
Token constraintName;/* Name of the constraint currently being parsed */
|
||||||
yDbMask writeMask; /* Start a write transaction on these databases */
|
yDbMask writeMask; /* Start a write transaction on these databases */
|
||||||
yDbMask cookieMask; /* Bitmask of schema verified databases */
|
yDbMask cookieMask; /* Bitmask of schema verified databases */
|
||||||
int cookieGoto; /* Address of OP_Goto to cookie verifier subroutine */
|
int cookieGoto; /* Address of OP_Goto to cookie verifier subroutine */
|
||||||
@@ -2381,7 +2382,6 @@ struct Parse {
|
|||||||
int regRowid; /* Register holding rowid of CREATE TABLE entry */
|
int regRowid; /* Register holding rowid of CREATE TABLE entry */
|
||||||
int regRoot; /* Register holding root page number for new objects */
|
int regRoot; /* Register holding root page number for new objects */
|
||||||
int nMaxArg; /* Max args passed to user function by sub-program */
|
int nMaxArg; /* Max args passed to user function by sub-program */
|
||||||
Token constraintName;/* Name of the constraint currently being parsed */
|
|
||||||
#ifndef SQLITE_OMIT_SHARED_CACHE
|
#ifndef SQLITE_OMIT_SHARED_CACHE
|
||||||
int nTableLock; /* Number of locks in aTableLock */
|
int nTableLock; /* Number of locks in aTableLock */
|
||||||
TableLock *aTableLock; /* Required table locks for shared-cache mode */
|
TableLock *aTableLock; /* Required table locks for shared-cache mode */
|
||||||
@@ -2400,12 +2400,17 @@ struct Parse {
|
|||||||
u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */
|
u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */
|
||||||
u8 disableTriggers; /* True to disable triggers */
|
u8 disableTriggers; /* True to disable triggers */
|
||||||
|
|
||||||
/* Above is constant between recursions. Below is reset before and after
|
/************************************************************************
|
||||||
** each recursion */
|
** Above is constant between recursions. Below is reset before and after
|
||||||
|
** each recursion. The boundary between these two regions is determined
|
||||||
|
** using offsetof(Parse,nVar) so the nVar field must be the first field
|
||||||
|
** in the recursive region.
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
int nVar; /* Number of '?' variables seen in the SQL so far */
|
int nVar; /* Number of '?' variables seen in the SQL so far */
|
||||||
int nzVar; /* Number of available slots in azVar[] */
|
int nzVar; /* Number of available slots in azVar[] */
|
||||||
u8 iPkSortOrder; /* ASC or DESC for INTEGER PRIMARY KEY */
|
u8 iPkSortOrder; /* ASC or DESC for INTEGER PRIMARY KEY */
|
||||||
|
u8 bFreeWith; /* True if pWith should be freed with parser */
|
||||||
u8 explain; /* True if the EXPLAIN flag is found on the query */
|
u8 explain; /* True if the EXPLAIN flag is found on the query */
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||||
u8 declareVtab; /* True if inside sqlite3_declare_vtab() */
|
u8 declareVtab; /* True if inside sqlite3_declare_vtab() */
|
||||||
@@ -2432,7 +2437,6 @@ struct Parse {
|
|||||||
Table *pZombieTab; /* List of Table objects to delete after code gen */
|
Table *pZombieTab; /* List of Table objects to delete after code gen */
|
||||||
TriggerPrg *pTriggerPrg; /* Linked list of coded triggers */
|
TriggerPrg *pTriggerPrg; /* Linked list of coded triggers */
|
||||||
With *pWith; /* Current WITH clause, or NULL */
|
With *pWith; /* Current WITH clause, or NULL */
|
||||||
u8 bFreeWith; /* True if pWith should be freed with parser */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user