-C Change\sthe\snames\sof\sexternal\ssymbols\sfrom\ssqlite_XXX\sto\ssqlite3_XXX.\s(CVS\s1340)
-D 2004-05-10T10:37:19
+C Add\sflags\svalues\sto\sthe\sMem\sstructure\sto\saccomodate\sBLOBs\sand\sto\sshow\nthe\srepresentation\sof\sstrings.\s(CVS\s1341)
+D 2004-05-10T12:07:11
F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
F src/vacuum.c c134702e023db8778e6be59ac0ea7b02315b5476
F src/vdbe.c 5cd18c8a3ab826f02ef1ce88a5798ec744337b30
F src/vdbe.h 2dc4d1161b64f5684faa6a2d292e318a185ecb2e
-F src/vdbeInt.h 742e257653aa4249fef3c4313f7e414387b6d7f6
+F src/vdbeInt.h 2567223b73d8807d61f8141d9f5e5f7f2975f50a
F src/vdbeaux.c 943484a2437b6cf40d1ffd3d62e48b5c9a043c5a
F src/where.c 487e55b1f64c8fbf0f46a9a90c2247fc45ae6a9a
F test/all.test 569a92a8ee88f5300c057cc4a8f50fbbc69a3242
F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 19b100ec0d088b2cca147c967a80d18403b7ee86
-R f2908d3295f9c85321a4f31d49755326
-U danielk1977
-Z a170a8ad66f9cc57576a3dbf5696300c
+P ac46bd686d2211813d254af578fe4e211162bc4b
+R 4a9fc99f56e83c67635aeaf2f3df4688
+U drh
+Z 2e2c13a294ecee6121fff95c45eff825
int n; /* Number of characters in string value, including '\0' */
int flags; /* Some combination of MEM_Null, MEM_Str, MEM_Dyn, etc. */
double r; /* Real value */
- char *z; /* String value */
+ char *z; /* String or BLOB value */
char zShort[NBFS]; /* Space for short strings */
};
typedef struct Mem Mem;
/*
-** Allowed values for Mem.flags
+** Allowed values for Mem.flags.
+**
+** The first 5 values determine the data type(s). Null and Blob must
+** occur alone. But Str, Int, and Real can occur together.
+**
+** The next 3 utf entries determine the text representation for strings.
+** These values are only meaningful if the type is Str.
+**
+** The last 4 values specify what kind of memory Mem.z points to.
+** These valus are only meaningful if the Str or Blob types are used.
*/
#define MEM_Null 0x0001 /* Value is NULL */
#define MEM_Str 0x0002 /* Value is a string */
#define MEM_Int 0x0004 /* Value is an integer */
#define MEM_Real 0x0008 /* Value is a real number */
-#define MEM_Dyn 0x0010 /* Need to call sqliteFree() on Mem.z */
-#define MEM_Static 0x0020 /* Mem.z points to a static string */
-#define MEM_Ephem 0x0040 /* Mem.z points to an ephemeral string */
-#define MEM_Short 0x0080 /* Mem.z points to Mem.zShort */
+#define MEM_Blob 0x0010 /* Value is a BLOB */
+
+#define MEM_Utf8 0x0020 /* String uses UTF-8 encoding */
+#define MEM_Utf16be 0x0040 /* String uses UTF-16 big-endian */
+#define MEM_Utf16le 0x0080 /* String uses UTF-16 little-endian */
+
+#define MEM_Dyn 0x0100 /* Need to call sqliteFree() on Mem.z */
+#define MEM_Static 0x0200 /* Mem.z points to a static string */
+#define MEM_Ephem 0x0400 /* Mem.z points to an ephemeral string */
+#define MEM_Short 0x0800 /* Mem.z points to Mem.zShort */
/* The following MEM_ value appears only in AggElem.aMem.s.flag fields.
** It indicates that the corresponding AggElem.aMem.z points to a
int sqlite3VdbeDeserialize(Mem *, const unsigned char *);
int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *);
-
-
-