SQLite

Check-in [cfff5cb2]
Login

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

Overview
Comment:Omit the omit flat from eq constraints on column "name" of dbstat virtual tables. Fix for [74a4c386].
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: cfff5cb2279088aa66f435bd0d627b2c74c9a99ad9addfd44a4df8ba770b795a
User & Date: dan 2020-01-04 18:38:58
Context
2020-01-04
19:12
Fix harmless compiler warnings. (check-in: 8452fe03 user: drh tags: trunk)
18:38
Omit the omit flat from eq constraints on column "name" of dbstat virtual tables. Fix for [74a4c386]. (check-in: cfff5cb2 user: dan tags: trunk)
18:33
Record when the OP_IfNotOpen branch is and is not taken. (check-in: 182a898b user: drh tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/dbstat.c.

233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
        break;
      }
    }
  }
  i = 0;
  if( iSchema>=0 ){
    pIdxInfo->aConstraintUsage[iSchema].argvIndex = ++i;
    pIdxInfo->aConstraintUsage[iSchema].omit = 1;
    pIdxInfo->idxNum |= 0x01;
  }
  if( iName>=0 ){
    pIdxInfo->aConstraintUsage[iName].argvIndex = ++i;
    pIdxInfo->aConstraintUsage[iName].omit = 1;
    pIdxInfo->idxNum |= 0x02;
  }
  if( iAgg>=0 ){
    pIdxInfo->aConstraintUsage[iAgg].argvIndex = ++i;
    /* As of ticket [727074e2], this constraint is not omitted. */
    /* pIdxInfo->aConstraintUsage[iAgg].omit = 1; */
    pIdxInfo->idxNum |= 0x04;
  }
  pIdxInfo->estimatedCost = 1.0;

  /* Records are always returned in ascending order of (name, path). 
  ** If this will satisfy the client, set the orderByConsumed flag so that 
  ** SQLite does not do an external sort.







<




<




<
<







233
234
235
236
237
238
239

240
241
242
243

244
245
246
247


248
249
250
251
252
253
254
        break;
      }
    }
  }
  i = 0;
  if( iSchema>=0 ){
    pIdxInfo->aConstraintUsage[iSchema].argvIndex = ++i;

    pIdxInfo->idxNum |= 0x01;
  }
  if( iName>=0 ){
    pIdxInfo->aConstraintUsage[iName].argvIndex = ++i;

    pIdxInfo->idxNum |= 0x02;
  }
  if( iAgg>=0 ){
    pIdxInfo->aConstraintUsage[iAgg].argvIndex = ++i;


    pIdxInfo->idxNum |= 0x04;
  }
  pIdxInfo->estimatedCost = 1.0;

  /* Records are always returned in ascending order of (name, path). 
  ** If this will satisfy the client, set the orderByConsumed flag so that 
  ** SQLite does not do an external sort.

Changes to test/stat.test.

293
294
295
296
297
298
299

300
301
302
303
304
305
306
307
308
309






310
311
  sqlite_master / 1 leaf 1 37 875 37 0 1024 
  x1 / 2 leaf 1 4 1008 4 1024 1024
}
do_catchsql_test 7.2.4 {
  CREATE VIRTUAL TABLE x3 USING dbstat(123corp);
  SELECT * FROM x3;
} {1 {unrecognized token: "123corp"}}


do_execsql_test 8.1 {
  CREATE VIRTUAL TABLE st4 USING dbstat;
}
do_execsql_test 8.2 {
  SELECT * FROM st4 WHERE st4.aggregate = NULL
}
do_execsql_test 8.3 {
  SELECT aggregate=1 FROM st4 WHERE aggregate = 5
}







finish_test







>










>
>
>
>
>
>


293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
  sqlite_master / 1 leaf 1 37 875 37 0 1024 
  x1 / 2 leaf 1 4 1008 4 1024 1024
}
do_catchsql_test 7.2.4 {
  CREATE VIRTUAL TABLE x3 USING dbstat(123corp);
  SELECT * FROM x3;
} {1 {unrecognized token: "123corp"}}


do_execsql_test 8.1 {
  CREATE VIRTUAL TABLE st4 USING dbstat;
}
do_execsql_test 8.2 {
  SELECT * FROM st4 WHERE st4.aggregate = NULL
}
do_execsql_test 8.3 {
  SELECT aggregate=1 FROM st4 WHERE aggregate = 5
}
do_execsql_test 8.4 {
  SELECT * FROM st4 WHERE name = NULL;
}
do_catchsql_test 8.5 {
  SELECT * FROM st4 WHERE schema = NULL;
} {1 {no such schema: }}

finish_test