Fix invalid use of unprotected sqlite3_value objects in the sqldiff utility,
when using the --changeset option.

FossilOrigin-Name: a8d65214a567eb1afd703ee4d09d398247e060a610b46097a726364db2861001
diff --git a/tool/sqldiff.c b/tool/sqldiff.c
index 509470a..9f5b6fe 100644
--- a/tool/sqldiff.c
+++ b/tool/sqldiff.c
@@ -1493,8 +1493,8 @@
 /*
 ** Write an SQLite value onto out.
 */
-static void putValue(FILE *out, sqlite3_value *pVal){
-  int iDType = sqlite3_value_type(pVal);
+static void putValue(FILE *out, sqlite3_stmt *pStmt, int k){
+  int iDType = sqlite3_column_type(pStmt, k);
   sqlite3_int64 iX;
   double rX;
   sqlite3_uint64 uX;
@@ -1503,24 +1503,24 @@
   putc(iDType, out);
   switch( iDType ){
     case SQLITE_INTEGER:
-      iX = sqlite3_value_int64(pVal);
+      iX = sqlite3_column_int64(pStmt, k);
       memcpy(&uX, &iX, 8);
       for(j=56; j>=0; j-=8) putc((uX>>j)&0xff, out);
       break;
     case SQLITE_FLOAT:
-      rX = sqlite3_value_double(pVal);
+      rX = sqlite3_column_double(pStmt, k);
       memcpy(&uX, &rX, 8);
       for(j=56; j>=0; j-=8) putc((uX>>j)&0xff, out);
       break;
     case SQLITE_TEXT:
-      iX = sqlite3_value_bytes(pVal);
+      iX = sqlite3_column_bytes(pStmt, k);
       putsVarint(out, (sqlite3_uint64)iX);
-      fwrite(sqlite3_value_text(pVal),1,(size_t)iX,out);
+      fwrite(sqlite3_column_text(pStmt, k),1,(size_t)iX,out);
       break;
     case SQLITE_BLOB:
-      iX = sqlite3_value_bytes(pVal);
+      iX = sqlite3_column_bytes(pStmt, k);
       putsVarint(out, (sqlite3_uint64)iX);
-      fwrite(sqlite3_value_blob(pVal),1,(size_t)iX,out);
+      fwrite(sqlite3_column_blob(pStmt, k),1,(size_t)iX,out);
       break;
     case SQLITE_NULL:
       break;
@@ -1650,10 +1650,10 @@
       case SQLITE_UPDATE: {
         for(k=1, i=0; i<nCol; i++){
           if( aiFlg[i] ){
-            putValue(out, sqlite3_column_value(pStmt,k));
+            putValue(out, pStmt, k);
             k++;
           }else if( sqlite3_column_int(pStmt,k) ){
-            putValue(out, sqlite3_column_value(pStmt,k+1));
+            putValue(out, pStmt, k+1);
             k += 3;
           }else{
             putc(0, out);
@@ -1665,7 +1665,7 @@
             putc(0, out);
             k++;
           }else if( sqlite3_column_int(pStmt,k) ){
-            putValue(out, sqlite3_column_value(pStmt,k+2));
+            putValue(out, pStmt, k+2);
             k += 3;
           }else{
             putc(0, out);
@@ -1677,10 +1677,10 @@
       case SQLITE_INSERT: {
         for(k=1, i=0; i<nCol; i++){
           if( aiFlg[i] ){
-            putValue(out, sqlite3_column_value(pStmt,k));
+            putValue(out, pStmt, k);
             k++;
           }else{
-            putValue(out, sqlite3_column_value(pStmt,k+2));
+            putValue(out, pStmt, k+2);
             k += 3;
           }
         }
@@ -1689,10 +1689,10 @@
       case SQLITE_DELETE: {
         for(k=1, i=0; i<nCol; i++){
           if( aiFlg[i] ){
-            putValue(out, sqlite3_column_value(pStmt,k));
+            putValue(out, pStmt, k);
             k++;
           }else{
-            putValue(out, sqlite3_column_value(pStmt,k+1));
+            putValue(out, pStmt, k+1);
             k += 3;
           }
         }