libraries/sqlite/parse.c
static Expr *tokenExpr(Parse *pParse, int op, Token t){
    Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);
    if( p ){
      /* memset(p, 0, sizeof(Expr)); */
      p->op = (u8)op;
      p->affinity = 0;
      p->flags = EP_Leaf;
      p->iAgg = -1;
      p->pLeft = p->pRight = 0;
      p->x.pList = 0;
      p->pAggInfo = 0;
      p->y.pTab = 0;
      p->op2 = 0;
      p->iTable = 0;
      p->iColumn = 0;
      p->u.zToken = (char*)&p[1];
      memcpy(p->u.zToken, t.z, t.n);
      p->u.zToken[t.n] = 0;
      if( sqlite3Isquote(p->u.zToken[0]) ){
        sqlite3DequoteExpr(p);
      }
#if SQLITE_MAX_EXPR_DEPTH>0
      p->nHeight = 1;
#endif  
      if( IN_RENAME_OBJECT ){
        return (Expr*)sqlite3RenameTokenMap(pParse, (void*)p, &t);
      }
    }
    return p;
  }
/* Construct a new Expr object from a single identifier.  Use the
  ** new Expr to populate pOut.  Set the span of pOut to be the identifier
  ** that created the expression.
  */
Construct a new Expr object from a single identifier.  Use the
new Expr to populate pOut.  Set the span of pOut to be the identifier
that created the expression.
Construct a new Expr object from a single identifier . Use the new Expr to populate pOut . Set the span of pOut to be the identifier that created the expression .
static Expr *tokenExpr(Parse *pParse, int op, Token t){
    Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);
    if( p ){
      p->op = (u8)op;
      p->affinity = 0;
      p->flags = EP_Leaf;
      p->iAgg = -1;
      p->pLeft = p->pRight = 0;
      p->x.pList = 0;
      p->pAggInfo = 0;
      p->y.pTab = 0;
      p->op2 = 0;
      p->iTable = 0;
      p->iColumn = 0;
      p->u.zToken = (char*)&p[1];
      memcpy(p->u.zToken, t.z, t.n);
      p->u.zToken[t.n] = 0;
      if( sqlite3Isquote(p->u.zToken[0]) ){
        sqlite3DequoteExpr(p);
      }
#if SQLITE_MAX_EXPR_DEPTH>0
      p->nHeight = 1;
#endif  
      if( IN_RENAME_OBJECT ){
        return (Expr*)sqlite3RenameTokenMap(pParse, (void*)p, &t);
      }
    }
    return p;
  }
static Expr * tokenExpr ( Parse * pParse , int op , Token t ) { Expr * p = sqlite3DbMallocRawNN ( pParse -> db , sizeof ( Expr ) + t . n + 1 ) ; if ( p ) { p -> op = ( u8 ) op ; p -> affinity = 0 ; p -> flags = EP_Leaf ; p -> iAgg = -1 ; p -> pLeft = p -> pRight = 0 ; p -> x . pList = 0 ; p -> pAggInfo = 0 ; p -> y . pTab = 0 ; p -> op2 = 0 ; p -> iTable = 0 ; p -> iColumn = 0 ; p -> u . zToken = ( char * ) & p [ 1 ] ; memcpy ( p -> u . zToken , t . z , t . n ) ; p -> u . zToken [ t . n ] = 0 ; if ( sqlite3Isquote ( p -> u . zToken [ 0 ] ) ) { sqlite3DequoteExpr ( p ) ; } #if SQLITE_MAX_EXPR_DEPTH > 0 p -> nHeight = 1 ; #endif if ( IN_RENAME_OBJECT ) { return ( Expr * ) sqlite3RenameTokenMap ( pParse , ( void * ) p , & t ) ; } } return p ; }
Construct a new Expr object from a single identifier.
Construct a new Expr object from a single identifier .
/* memset(p, 0, sizeof(Expr)); */