1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-06 15:49:35 +03:00

New assert()s added to verify that the Expr.token value is used correctly. Ticket #3743. (CVS 6378)

FossilOrigin-Name: cf3d84ab73b7f519921a984f88bdad81996a3a82
This commit is contained in:
drh
2009-03-24 15:31:28 +00:00
parent d9da78a2c8
commit 1af466eb6b
4 changed files with 27 additions and 14 deletions

View File

@@ -11,7 +11,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.846 2009/03/24 15:08:10 drh Exp $
** @(#) $Id: sqliteInt.h,v 1.847 2009/03/24 15:31:28 drh Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_
@@ -1458,7 +1458,8 @@ struct AggInfo {
struct Expr {
u8 op; /* Operation performed by this node */
char affinity; /* The affinity of the column or 0 if not a column */
u16 flags; /* Various flags. See below */
VVA_ONLY(u8 vvaFlags;) /* Flags used for VV&A only. EVVA_* below. */
u16 flags; /* Various flags. EP_* See below */
Token token; /* An operand token */
/* If the EP_TokenOnly flag is set in the Expr.flags mask, then no
@@ -1518,6 +1519,15 @@ struct Expr {
#define EP_TokenOnly 0x4000 /* Expr struct is EXPR_TOKENONLYSIZE bytes only */
#define EP_SpanOnly 0x8000 /* Expr struct is EXPR_SPANONLYSIZE bytes only */
/*
** The following are the meanings of bits in the Expr.vvaFlags field.
** This information is only used when SQLite is compiled with
** SQLITE_DEBUG defined.
*/
#ifndef NDEBUG
#define EVVA_ReadOnlyToken 0x01 /* Expr.token.z is read-only */
#endif
/*
** These macros can be used to test, set, or clear bits in the
** Expr.flags field.