SQLite

Check-in [81cfee5c14]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:When a name in double quotes falls back to being a string literal, make sure it has no affinity. Ticket #3442. (CVS 5832)
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 81cfee5c14f241f5ae7f607d73b0b5cb821cda24
User & Date: drh 2008-10-19 21:03:27.000
Context
2008-10-21
04:30
Update the autoconf build system to include memjournal.c. (CVS 5833) (check-in: a3c810f0c8 user: danielk1977 tags: trunk)
2008-10-19
21:03
When a name in double quotes falls back to being a string literal, make sure it has no affinity. Ticket #3442. (CVS 5832) (check-in: 81cfee5c14 user: drh tags: trunk)
2008-10-17
19:13
Add the memjournal.c file that should have been with the previous checkin. (CVS 5831) (check-in: 0509eff0e6 user: danielk1977 tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/resolve.c.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
**
*************************************************************************
**
** This file contains routines used for walking the parser tree and
** resolve all identifiers by associating them with a particular
** table and column.
**
** $Id: resolve.c,v 1.9 2008/10/11 16:47:36 drh Exp $
*/
#include "sqliteInt.h"
#include <stdlib.h>
#include <string.h>

/*
** Turn the pExpr expression into an alias for the iCol-th column of the







|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
**
*************************************************************************
**
** This file contains routines used for walking the parser tree and
** resolve all identifiers by associating them with a particular
** table and column.
**
** $Id: resolve.c,v 1.10 2008/10/19 21:03:27 drh Exp $
*/
#include "sqliteInt.h"
#include <stdlib.h>
#include <string.h>

/*
** Turn the pExpr expression into an alias for the iCol-th column of the
316
317
318
319
320
321
322

323
324
325
326
327
328
329
  **
  ** Because no reference was made to outer contexts, the pNC->nRef
  ** fields are not changed in any context.
  */
  if( cnt==0 && zTab==0 && pColumnToken->z[0]=='"' ){
    sqlite3DbFree(db, zCol);
    pExpr->op = TK_STRING;

    return 0;
  }

  /*
  ** cnt==0 means there was not match.  cnt>1 means there were two or
  ** more matches.  Either way, we have an error.
  */







>







316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
  **
  ** Because no reference was made to outer contexts, the pNC->nRef
  ** fields are not changed in any context.
  */
  if( cnt==0 && zTab==0 && pColumnToken->z[0]=='"' ){
    sqlite3DbFree(db, zCol);
    pExpr->op = TK_STRING;
    pExpr->pTab = 0;
    return 0;
  }

  /*
  ** cnt==0 means there was not match.  cnt>1 means there were two or
  ** more matches.  Either way, we have an error.
  */