| # 2014 October 30 |
| # |
| # The author disclaims copyright to this source code. In place of |
| # a legal notice, here is a blessing: |
| # |
| # May you do good and not evil. |
| # May you find forgiveness for yourself and forgive others. |
| # May you share freely, never taking more than you give. |
| # |
| #*********************************************************************** |
| # |
| |
| set testdir [file dirname $argv0] |
| source $testdir/tester.tcl |
| set testprefix e_blobbytes |
| |
| do_execsql_test 1.0 { |
| CREATE TABLE q1(r INTEGER PRIMARY KEY, s TEXT); |
| WITH d(a, b) AS ( |
| SELECT 0, '' |
| UNION ALL |
| SELECT a+1, b||'.' FROM d WHERE a<10000 |
| ) |
| INSERT INTO q1 SELECT * FROM d; |
| } |
| |
| |
| # EVIDENCE-OF: R-07796-55423 Returns the size in bytes of the BLOB |
| # accessible via the successfully opened BLOB handle in its only |
| # argument. |
| # |
| proc check_blob_size {tn rowid bytes} { |
| uplevel [list do_test $tn [subst -nocommands { |
| sqlite3_blob_open db main q1 s $rowid 0 B |
| set res [sqlite3_blob_bytes [set B]] |
| sqlite3_blob_close [set B] |
| set res |
| }] $bytes] |
| } |
| check_blob_size 1.1 43 43 |
| check_blob_size 1.2 391 391 |
| check_blob_size 1.3 6349 6349 |
| check_blob_size 1.4 2621 2621 |
| check_blob_size 1.5 7771 7771 |
| check_blob_size 1.6 7949 7949 |
| check_blob_size 1.7 4374 4374 |
| check_blob_size 1.8 2578 2578 |
| check_blob_size 1.9 7004 7004 |
| check_blob_size 1.10 2180 2180 |
| check_blob_size 1.11 3796 3796 |
| check_blob_size 1.12 7101 7101 |
| check_blob_size 1.13 7449 7449 |
| check_blob_size 1.14 7224 7224 |
| check_blob_size 1.15 3038 3038 |
| check_blob_size 1.16 1083 1083 |
| check_blob_size 1.17 5157 5157 |
| check_blob_size 1.18 6686 6686 |
| check_blob_size 1.19 6592 6592 |
| check_blob_size 1.20 0 0 |
| |
| |
| # EVIDENCE-OF: R-53088-19343 The incremental blob I/O routines can only |
| # read or overwriting existing blob content; they cannot change the size |
| # of a blob. |
| # |
| # Also demonstrated in other e_blobXXX.test files. |
| # |
| do_test 2.1 { |
| sqlite3_blob_open db main q1 s 86 1 B |
| list [catch { sqlite3_blob_write $B 86 "1" 1 } msg] $msg |
| } {1 SQLITE_ERROR} |
| sqlite3_blob_close $B |
| |
| finish_test |