Diff
Not logged in

Differences From Artifact [af50e8dfc7]:

To Artifact [55c3fb8eae]:


14387
14388
14389
14390
14391
14392
14393
14394
14395


14396
14397
14398
14399
14400
14401
14402
14387
14388
14389
14390
14391
14392
14393


14394
14395
14396
14397
14398
14399
14400
14401
14402







-
-
+
+







  if( rc!=SQLITE_ROW ) return;
  nColumn = sqlite3_column_count(pStmt);
  nAlloc = nColumn*4;
  if( nAlloc<=0 ) nAlloc = 1;
  azData = sqlite3_malloc64( nAlloc*sizeof(char*) );
  shell_check_oom(azData);
  azNextLine = sqlite3_malloc64( nColumn*sizeof(char*) );
  shell_check_oom(azNextLine);
  memset(azNextLine, 0, nColumn*sizeof(char*) );
  shell_check_oom((void*)azNextLine);
  memset((void*)azNextLine, 0, nColumn*sizeof(char*) );
  if( p->bQuote ){
    azQuoted = sqlite3_malloc64( nColumn*sizeof(char*) );
    shell_check_oom(azQuoted);
    memset(azQuoted, 0, nColumn*sizeof(char*) );
  }
  abRowDiv = sqlite3_malloc64( nAlloc/nColumn );
  shell_check_oom(abRowDiv);
14425
14426
14427
14428
14429
14430
14431
14432
14433


14434
14435
14436
14437
14438
14439
14440
14441
14442
14443

14444
14445
14446
14447
14448
14449
14450
14425
14426
14427
14428
14429
14430
14431


14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442

14443
14444
14445
14446
14447
14448
14449
14450







-
-
+
+









-
+







      shell_check_oom(azData);
      abRowDiv = sqlite3_realloc64(abRowDiv, nAlloc/nColumn);
      shell_check_oom(abRowDiv);
    }
    abRowDiv[nRow] = 1;
    nRow++;
    for(i=0; i<nColumn; i++){
      int w = p->colWidth[i];
      if( w==0 ) w = p->iWrap;
      int wx = p->colWidth[i];
      if( wx==0 ) wx = p->iWrap;
      if( useNextLine ){
        uz = azNextLine[i];
      }else if( p->bQuote ){
        sqlite3_free(azQuoted[i]);
        azQuoted[i] = quoted_column(pStmt,i);
        uz = (const unsigned char*)azQuoted[i];
      }else{
        uz = (const unsigned char*)sqlite3_column_text(pStmt,i);
      }
      azData[nRow*nColumn + i] = translateForDisplayAndDup(uz, &azNextLine[i], w);
      azData[nRow*nColumn + i] = translateForDisplayAndDup(uz, &azNextLine[i], wx);
      if( azNextLine[i] ){
        bNextLine = 1;
        abRowDiv[nRow-1] = 0;
        bMultiLineRowExists = 1;
      }
    }
  }while( bNextLine || sqlite3_step(pStmt)==SQLITE_ROW );
14551
14552
14553
14554
14555
14556
14557
14558

14559
14560
14561
14562
14563
14564
14565
14551
14552
14553
14554
14555
14556
14557

14558
14559
14560
14561
14562
14563
14564
14565







-
+







columnar_end:
  if( seenInterrupt ){
    utf8_printf(p->out, "Interrupt\n");
  }
  nData = (nRow+1)*nColumn;
  for(i=0; i<nData; i++) free(azData[i]);
  sqlite3_free(azData);
  sqlite3_free(azNextLine);
  sqlite3_free((void*)azNextLine);
  sqlite3_free(abRowDiv);
  if( azQuoted ){
    for(i=0; i<nColumn; i++) sqlite3_free(azQuoted[i]);
    sqlite3_free(azQuoted);
  }
}