]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add flags values to the Mem structure to accomodate BLOBs and to show
authordrh <drh@noemail.net>
Mon, 10 May 2004 12:07:10 +0000 (12:07 +0000)
committerdrh <drh@noemail.net>
Mon, 10 May 2004 12:07:10 +0000 (12:07 +0000)
the representation of strings. (CVS 1341)

FossilOrigin-Name: 3af283f483f75795d5b03dc8fd886aaf326d50b7

manifest
manifest.uuid
src/vdbeInt.h

index db7e62886cacfc3050376be51dddb304a37b391a..31559757339ffbcaa4b5b6481e4e3092289a23f2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-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
@@ -65,7 +65,7 @@ F src/util.c 74ee316594f68c41aed1884d737ab4085d479455
 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
@@ -187,7 +187,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 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
index 1697e92a09574244126d274ca0bb524192908d56..50437f9ad206238492407e66ceda988139420fce 100644 (file)
@@ -1 +1 @@
-ac46bd686d2211813d254af578fe4e211162bc4b
\ No newline at end of file
+3af283f483f75795d5b03dc8fd886aaf326d50b7
\ No newline at end of file
index 5ce63b751277551350e06257d6dcac817837e4a3..9d254f8ccb3848bf186acbc35c277cd545681da4 100644 (file)
@@ -114,22 +114,37 @@ struct Mem {
   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
@@ -306,6 +321,3 @@ int sqlite3VdbeSerialLen(const Mem *);
 int sqlite3VdbeDeserialize(Mem *, const unsigned char *);
 
 int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *);
-
-
-