Index: ext/zonefile/zonefile.c ================================================================== --- ext/zonefile/zonefile.c +++ ext/zonefile/zonefile.c @@ -2310,13 +2310,17 @@ sqlite3_result_value(pCtx, sqlite3_column_value(pCsr->pSelect, 0)); break; case 1: /* v */ rc = zonefileGetValue(pCtx, pCsr); break; - case 2: /* file */ - sqlite3_result_value(pCtx, sqlite3_column_value(pCsr->pSelect, 1)); + case 2: { /* file */ + const char *zFile = 0; + rc = zonefileGetFile(pCtx, pCsr, &zFile); + sqlite3_result_text(pCtx, zFile, -1, SQLITE_TRANSIENT); + zonefileReleaseFile(pCsr); break; + } default: { /* sz */ int iCol; if( sqlite3_column_type(pCsr->pSelect, 5)==SQLITE_NULL ){ iCol = 3; }else{ Index: ext/zonefile/zonefile1.test ================================================================== --- ext/zonefile/zonefile1.test +++ ext/zonefile/zonefile1.test @@ -49,11 +49,10 @@ do_execsql_test 1.5.1 { SELECT k FROM z1 } {1 2 3} do_execsql_test 1.5.2 { SELECT file FROM z1 } { test.zonefile test.zonefile test.zonefile } do_execsql_test 1.5.4 { SELECT sz FROM z1 } {100 100 100} -exit do_execsql_test 1.5.5 { SELECT zz.v==z1.v FROM zz, z1 WHERE zz.k=z1.k } {1 1 1}