/* init_schema */ static rc_t init_schema ( const vtblcp_parms *pb, const VDBManager *mgr, VSchema **schemap ) { VSchema *schema; rc_t rc = VDBManagerMakeSchema ( mgr, & schema ); if ( rc != 0 ) LOGERR ( klogInt, rc, "failed to create empty schema" ); else { /* parse schema file */ rc = VSchemaParseFile ( schema, pb -> schema_src ); if ( rc != 0 ) PLOGERR ( klogErr, (klogErr, rc, "failed to parse schema file '$(file)'", "file=%s", pb -> schema_src )); else { * schemap = schema; return 0; } VSchemaRelease ( schema ); } return rc; }
static rc_t make_schema( const KNamelist * schema_list, VDBManager *my_manager, VSchema ** schema ) { rc_t rc = VDBManagerMakeSchema ( my_manager, schema ); if ( rc != 0 ) LogErr( klogInt, rc, "VDBManagerMakeSchema() failed\n" ); else { uint32_t count; rc = KNamelistCount ( schema_list, &count ); if ( rc !=0 ) LogErr( klogInt, rc, "KNamelistCount(schema-list) failed\n" ); else { uint32_t i; for ( i = 0; i < count && rc == 0; ++i ) { const char * name; rc = KNamelistGet ( schema_list, i, &name ); if ( rc !=0 ) LogErr( klogInt, rc, "KNamelistGet(schema-list) failed\n" ); else { rc = VSchemaParseFile ( *schema, name ); if ( rc !=0 ) LogErr( klogInt, rc, "VSchemaParseFile() failed\n" ); } } } } return rc; }
static VSchema *map_schema_types ( TypeParams *type, const ctx_t *ctx, const VSchema *src_schema ) { FUNC_ENTRY ( ctx ); bool mapped; char schema_src [ 256 ]; assert ( sizeof schema_src == sizeof type -> dst_type ); TRY ( mapped = map_typename ( ctx, "out-map", type -> src_type, type -> dst_type, schema_src, sizeof schema_src ) ) { rc_t rc; VSchema *dst_schema; if ( ! mapped ) { type -> view_type [ 0 ] = 0; rc = VSchemaAddRef ( src_schema ); if ( rc != 0 ) ERROR ( rc, "VSchemaAddRef failed" ); return ( VSchema* ) src_schema; } rc = VDBManagerMakeSchema ( ctx -> caps -> vdb, & dst_schema ); if ( rc != 0 ) ERROR ( rc, "VDBManagerMakeSchema failed" ); else { rc = VSchemaParseFile ( dst_schema, "%s", schema_src ); if ( rc != 0 ) ERROR ( rc, "VSchemaParseFile failed adding file '%s' for destination", src_schema ); else { TRY ( mapped = map_typename ( ctx, "view-map", type -> src_type, type -> view_type, schema_src, sizeof schema_src ) ) { if ( ! mapped ) { type -> view_type [ 0 ] = 0; return dst_schema; } rc = VSchemaParseFile ( dst_schema, "%s", schema_src ); if ( rc == 0 ) return dst_schema; ERROR ( rc, "VSchemaParseFile failed adding file '%s' for view", src_schema ); } } VSchemaRelease ( dst_schema ); } }
static rc_t DB_Init(const SParam* p, DB_Handle* h) { rc_t rc; if( (rc = VDBManagerMakeUpdate(&h->mgr, NULL)) != 0 ) { LOGERR(klogErr, rc, "failed to create VDB Manager"); } else if( (rc = VDBManagerMakeSchema(h->mgr, &h->schema)) != 0 ) { LOGERR(klogErr, rc, "failed to create schema"); } else if( (rc = VSchemaParseFile(h->schema, p->schema)) != 0 ) { PLOGERR(klogErr, (klogErr, rc, "failed to parse schema file '$(schema)'", PLOG_S(schema), p->schema)); } else if( (rc = VDBManagerCreateDB(h->mgr, &h->db, h->schema, "NCBI:align:db:alignment_evidence", p->force ? kcmInit : kcmCreate, p->out)) != 0 ) { PLOGERR(klogErr, (klogErr, rc, "failed to create database at '$(path)'", PLOG_S(path), p->out)); } else if( (rc = ReferenceMgr_Make(&h->rmgr, h->db, h->mgr, (p->force_refw ? ewrefmgr_co_allREADs : 0), p->refseqcfg, p->refseqpath, p->refseq_chunk, 350 * 1024 * 1024, 0)) != 0 ) { LOGERR(klogErr, rc, "failed to create reference manager"); } else if( (rc = CGWriterAlgn_Make(&h->walgn, &h->mappings, h->db, h->rmgr, p->min_mapq, p->single_mate, p->cluster_size)) != 0 ) { LOGERR(klogErr, rc, "failed to create alignment writer"); } else if( (rc = CGWriterSeq_Make(&h->wseq, &h->reads, h->db, (p->force_readw ? ewseq_co_SaveRead : 0) | (p->no_spot_group ? 0 : ewseq_co_SpotGroup), p->qual_quant)) != 0 ) { LOGERR(klogErr, rc, "failed to create sequence writer"); } else if( p->asm_path && (rc = CGWriterEvdInt_Make(&h->wev_int, &h->ev_int, h->db, h->rmgr, 0)) != 0 ) { LOGERR(klogErr, rc, "failed to create evidence intervals writer"); } else if( p->asm_path && (rc = CGWriterEvdDnbs_Make(&h->wev_dnb, &h->ev_dnb, h->db, h->rmgr, 0)) != 0 ) { LOGERR(klogErr, rc, "failed to create evidence dnbs writer"); } else { const char** r = p->refFiles; while( rc == 0 && *r != NULL ) { if( (rc = ReferenceMgr_FastaPath(h->rmgr, *r++)) != 0 ) { PLOGERR(klogInfo, (klogInfo, rc, "fasta file '$(file)'", "file=%s", r[-1])); } } } return rc; }
static rc_t pacbio_load_schema( ld_context *lctx, const char *schema_name ) { rc_t rc; if ( pacbio_is_schema_dflt( schema_name ) ) { rc = VDBManagerMakeSRASchema ( lctx->vdb_mgr, &lctx->schema ); if ( rc != 0 ) LOGERR( klogErr, rc, "cannot create sra-schema" ); if ( rc == 0 ) { rc = VSchemaParseFile ( lctx->schema, schema_name ); if ( rc != 0 ) PLOGERR( klogErr, ( klogErr, rc, "cannot to parse schema file '$(schema)'", "schema=%s", schema_name ) ); } } else { rc = VDBManagerMakeSchema ( lctx->vdb_mgr, &lctx->schema ); if ( rc != 0 ) LOGERR( klogErr, rc, "cannot create sra-schema" ); else { char path[ 4096 ]; rc = pacbio_extract_path( lctx->wd, schema_name, path, sizeof path ); if ( rc == 0 ) { rc = VSchemaAddIncludePath ( lctx->schema, path ); if ( rc != 0 ) PLOGERR( klogErr, ( klogErr, rc, "cannot add schema-include-path '$(path)'", "path=%s", path ) ); else { rc = VSchemaParseFile ( lctx->schema, schema_name ); if ( rc != 0 ) PLOGERR( klogErr, ( klogErr, rc, "cannot to parse schema file '$(schema)'", "schema=%s", schema_name ) ); } } } } return rc; }
static rc_t DumpSchema( const context *ctx ) { KDirectory *my_dir; rc_t rc = KDirectoryNativeDir ( &my_dir ); display_rescode( rc, "failed to open native dir", NULL ); if ( rc == 0 ) { const VDBManager *my_manager; rc = VDBManagerMakeRead ( &my_manager, my_dir ); display_rescode( rc, "failed to make manager", NULL ); if ( rc == 0 ) { VSchema *my_schema; rc = VDBManagerMakeSchema( my_manager, &my_schema ); display_rescode( rc, "failed to make schema", NULL ); if ( rc == 0 ) { rc = for_each_v_name( ctx->include_files, my_schema, add_include ); if ( rc == 0 ) { rc = for_each_v_name( ctx->src_files, my_schema, add_source ); if ( rc == 0 ) { rc = DumpSchema_to( my_schema, ctx ); if ( rc == 0 ) rc = WriteDependency( my_schema, ctx ); } } VSchemaRelease( my_schema ); } VDBManagerRelease( my_manager ); } KDirectoryRelease( my_dir ); } return rc; }
rc_t KeyRingDatabaseSave ( struct KeyRingData* self, struct KDirectory* wd, const char* path ) { rc_t rc; VDBManager* vdbMgr; rc = VDBManagerMakeUpdate( &vdbMgr, wd ); if (rc == 0) { VSchema* schema; rc = VDBManagerMakeSchema(vdbMgr, &schema); if (rc == 0) { rc = VSchemaParseText ( schema, "keyring_schema", schema_text, string_measure(schema_text, NULL) ); if (rc == 0) { /* create a database */ VDatabase* db; rc = VDBManagerCreateDB(vdbMgr, & db, schema, "keyring:KEYRING", kcmCreate | kcmMD5, path); if (rc == 0) { rc_t rc2; rc = SaveProjects(&self->projects, db); if (rc == 0) rc = SaveObjects(&self->objects, db); /*TODO: SaveKeys */ rc2 = VDatabaseRelease(db); if (rc == 0) rc = rc2; } } VSchemaRelease(schema); } VDBManagerRelease(vdbMgr); } return rc; }
static rc_t static_write(void) { const char *schema_text = "version 1; include 'vdb/vdb.vschema'; table foo #1 { column ascii bar { read = .bar; } physical ascii .bar = bar; }"; bool force = 1; rc_t rc; VDBManager *vmgr; rc = VDBManagerMakeUpdate ( & vmgr, NULL ); if ( rc != 0 ) LOGERR ( klogInt, rc, "failed to make VDB manager" ); else { VSchema *schema; rc = VDBManagerMakeSchema ( vmgr, & schema ); if ( rc != 0 ) LOGERR ( klogInt, rc, "failed to make empty schema" ); else { rc = VSchemaParseText( schema, "static_schema", schema_text, strlen(schema_text) ); if ( rc != 0 ) PLOGERR ( klogErr, (klogErr, rc, "failed to parse schema '$(text)'", "test=%s", schema_text )); else { VTable *vtbl; rc = VDBManagerCreateTable ( vmgr, & vtbl, schema, "foo", force ? kcmInit : kcmCreate, table_path ); if ( rc != 0 ) { PLOGERR ( klogErr, (klogErr, rc, "failed to $(cmode) table '$(path)'" , "cmode=%s,path=%s" , force ? "create or replace" : "create" , table_path )); } else { VCursor *curs; rc = VTableCreateCursorWrite ( vtbl, & curs, kcmInsert ); if ( rc != 0 ) LOGERR ( klogInt, rc, "failed to create cursor" ); else { uint32_t idx; rc = VCursorAddColumn ( curs, &idx, "bar" ); if ( rc != 0 ) { PLOGERR ( klogErr, (klogErr, rc, "failed to add column '$(col)' to cursor" , "col=bar" )); } else { rc = VCursorOpen ( curs ); if ( rc != 0 ) LOGERR ( klogErr, rc, "failed to open cursor" ); else { int i; for ( i = 0; i != 10 && rc == 0; ++i ) { rc = VCursorOpenRow ( curs ); if ( rc != 0 ) LOGERR ( klogErr, rc, "failed to open cursor row" ); else { rc_t rc2; uint32_t count = sizeof(buff) - 1; rc = VCursorWrite ( curs, idx, 8, buff, 0, count ); if ( rc != 0 ) { int64_t rid = 0; VCursorRowId ( curs, & rid ); PLOGERR ( klogInt, (klogInt, rc, "failed to write data to row $(row_id)'" , "row_id=%ld" , rid )); break; } if ( rc == 0 ) { rc = VCursorCommitRow ( curs ); if ( rc != 0 ) LOGERR ( klogErr, rc, "failed to commit row" ); } rc2 = VCursorCloseRow ( curs ); if ( rc2 != 0 ) { LOGERR ( klogErr, rc2, "failed to close cursor row" ); if ( rc == 0 ) rc = rc2; } } } if ( GetRCState ( rc ) == rcDone ) rc = 0; if ( rc == 0 ) rc = VCursorCommit ( curs ); } } VCursorRelease ( curs ); } #if 1 if ( rc == 0 ) rc = VTableReindex ( vtbl ); #endif VTableRelease ( vtbl ); } } VSchemaRelease ( schema ); } VDBManagerRelease ( vmgr ); } return rc; }
rc_t run (const char * table_path, uint64_t N ) { static const char *colInf[] = { "C1: Same value, same length", "C2: Var. value, same length", "C3: Var. value, var. legnth", "C4: Same value except I row", "C5: Same value except L row" }; rc_t rc; uint64_t row = 0; VDBManager *mgr = NULL; VSchema *schema = NULL; VTable *table = NULL; VCursor *cursor; uint32_t idx[COLUMNS]; uint64_t total[COLUMNS]; int i = 0, j = 0, prev = 0; char *buffer[BUFFERS]; /* Initialize arrays */ memset(&idx, 0, sizeof idx); memset(&total, 0, sizeof total); for (i = 0; i < BUFFERS; ++i) { char c; size_t sz = ROWLEN + 1; if (i == (BUFFERS - 1)) sz += ROWLEN; buffer[i] = malloc(sz); for (j = 0, c = 0; j < sz - 1; ++j, ++c) { if (c >= ROWLEN) c -= ROWLEN; buffer[i][j] = '0' + c; } buffer[i][j] = '\0'; } /* Create manager */ rc = VDBManagerMakeUpdate(&mgr, NULL); if (rc != 0) { LOGERR(klogInt, rc, "failed to open vdb library"); } /* Initialize schema */ if (rc == 0) { rc = VDBManagerMakeSchema(mgr, &schema); if (rc != 0) LOGERR(klogInt, rc, "failed to create empty schema"); } if (rc == 0) { char text[512] = "table Table #1 {\n"; char col [128]; for (i = 1; i <= COLUMNS; ++i) { sprintf(col, " column ascii C%d = .C%d; physical ascii .C%d = C%d;\n", i, i, i, i); strcat(text, col); } strcat(text, "};"); STSMSG(1,("Parsing schema:\n%s", text)); rc = VSchemaParseText(schema, "Schema", text, strlen(text)); if (rc != 0) LOGERR(klogInt, rc, "failed to parse schema"); } /* Create table */ if (rc == 0) { STSMSG(1,("Creating %s", tablePath)); rc = VDBManagerCreateTable(mgr, &table, schema, "Table", kcmInit, tablePath); if (rc != 0) LOGERR(klogInt, rc, "failed to create table"); } /* Initialize cursor */ if (rc == 0) { rc = VTableCreateCursorWrite(table, &cursor, kcmInsert); if (rc != 0) LOGERR(klogInt, rc, "failed to create cursor"); } for (i = 0; rc == 0 && i < COLUMNS; ++i) { char col[3]; sprintf(col, "C%d", i + 1); STSMSG(2,("Adding column %s to cursor", col)); rc = VCursorAddColumn(cursor, &idx[i], col); if (rc != 0) PLOGERR(klogInt, (klogInt, rc, "failed to add $(c) to cursor", "c=%s", col)); } if (rc == 0) { rc = VCursorOpen(cursor); if (rc != 0) LOGERR(klogInt, rc, "failed to open cursor"); } /* Write data */ for (row = 0; row < N && rc == 0; ++row) { int max = 2 * ROWLEN - 1; int sz = 0; if ((row % 2) == 0) { int min = 1; sz = min + (int) (max * (rand() / (RAND_MAX + 1.0))); prev = sz; buffer[1][0] = '1'; } else { sz = max + 1 - prev; buffer[1][0] = '2'; } rc = Quitting(); if (rc == 0) { KStsLevel lvl = 2; if (row > 0 && ((row % ROWS) == 0)) { lvl = 1; } STSMSG (lvl, ("Writing row %ji / %ji", row + 1, N)); rc = VCursorOpenRow(cursor); if (rc != 0) LOGERR(klogInt, rc, "failed to open row"); } for (j = 0; j < COLUMNS && rc == 0; ++j) { uint32_t count = 0; int buf = j; switch (j) { case 0: case 1: count = strlen(buffer[j]); break; case 2: count = sz; break; case 3: buf = 0; if (row == 0) buf = 1; count = strlen(buffer[buf]); break; case 4: buf = 0; if (row == (N - 1)) buf = 1; count = strlen(buffer[buf]); break; default: assert(0); break; } STSMSG (3, ("Row %ji/Col.%d: %sd %.*s\n", row + 1, j + 1, count, count, buffer[buf])); rc = VCursorWrite (cursor, idx[j], 8, buffer[buf], 0, count); if (rc != 0) PLOGERR(klogInt, (klogInt, rc, "failed to write row[$i]", "i=%d", j + 1)); total[j] += count; } if (rc == 0) { rc = VCursorCommitRow(cursor); if (rc != 0) LOGERR(klogInt, rc, "failed to commit row"); } if (rc == 0) { rc = VCursorCloseRow(cursor); if (rc != 0) LOGERR(klogInt, rc, "failed to close row"); } } if (rc == 0) { STSMSG (1, ("Commiting cursor\n")); rc = VCursorCommit(cursor); if (rc != 0) LOGERR(klogInt, rc, "failed to commit cursor"); } /* Cleanup */ VCursorRelease(cursor); VTableRelease(table); VSchemaRelease(schema); VDBManagerRelease(mgr); for (i = 0; i < BUFFERS; ++i) { free(buffer[i]); } /* Log */ if (rc == 0) { PLOGMSG(klogInfo, (klogInfo, "$(t)", "t=%s", tablePath)); PLOGMSG(klogInfo,(klogInfo, "$(n)($(N)) rows written - $(b) bytes per row", PLOG_I64(n) "," PLOG_X64(N) ",b=%d", N, N, ROWLEN)); for (i = 0; i < COLUMNS; ++i) { PLOGMSG(klogInfo,(klogInfo, "$(i): $(n)($(N)) bytes", "i=%s," PLOG_I64(n) "," PLOG_X64(N), colInf[i], total[i], total[i])); } } if (rc == 0) { KDirectory *dir = NULL; uint64_t sizes[COLUMNS]; memset(&sizes, 0, sizeof sizes); rc = KDirectoryNativeDir(&dir); if (rc != 0) LOGERR(klogInt, rc, "failed to KDirectoryNativeDir"); else { for (i = 1; i <= COLUMNS; ++i) { uint64_t size = 0; #define FORMAT "%s/col/%s/data" #define KFORMAT "$(d)/col/$(n)/data", "d=%s,n=%s" #define STATUS(action) (action FORMAT, tablePath, name) char name[3]; sprintf(name, "C%d", i); STSMSG (1, STATUS("checking ")); rc = KDirectoryFileSize(dir, &size, FORMAT, tablePath, name); if (rc != 0) { if (GetRCState(rc) == rcNotFound) { STSMSG (2, STATUS("not found ")); rc = 0; } else PLOGERR(klogInt, (klogInt, rc, "failed to check " KFORMAT, tablePath, name)); } else { STSMSG (2, STATUS("found ")); } PLOGMSG(klogInfo, (klogInfo, "Size of $(d)/col/$(n)/data = $(s)", "d=%s,n=%s," PLOG_I64(s), tablePath, name, size)); sizes[i - 1] = size; } } KDirectoryRelease(dir); if (rc == 0) { puts(""); KOutMsg("%ld rows, %d bytes per row:\n", N, ROWLEN); for (i = 0; i < COLUMNS; ++i) { puts(colInf[i]); } puts(""); for (i = 0; i < COLUMNS; ++i) { int64_t over = sizes[i] - total[i]; KOutMsg("C%d: %9ld bytes written; " "%9ld in 'data'", i + 1, total[i], sizes[i]); if (over > 0) { double p = 100.0 * over / sizes[i]; printf(": %7ld extra bytes (%.4f%%)\n", over, p); } else { puts(""); } } } } return rc; }
rc_t open (param_block * pb) { rc_t rc; rc = KDirectoryNativeDir (&pb->pwd); if (rc) LOGERR (klogFatal, rc, "Failed to open file system"); else { rc = KDirectoryOpenFileRead (pb->pwd, &pb->file, "%s", pb->file_path); if (rc) LOGERR (klogFatal, rc, "Failed to open input file"); else { rc = KMMapMakeRead (&pb->mmap, pb->file); if (rc) LOGERR (klogFatal, rc, "unable to map file"); else { rc = VDBManagerMakeUpdate (&pb->mgr, pb->pwd); if (rc) LOGERR (klogFatal, rc, "Failed to open DB Manager"); else { rc = VDBManagerMakeSchema (pb->mgr, &pb->schema); if (rc) LOGERR (klogFatal, rc, "Failed to create a schema object"); else { VSchemaAddIncludePath (pb->schema, "interfaces"); rc = VSchemaParseFile (pb->schema, "%s", pb->schema_path); if (rc) LOGERR (klogFatal, rc, "Failed to parse schema"); else { rc = VDBManagerCreateTable (pb->mgr, &pb->table, pb->schema, TYPESPEC, kcmCreate, "%s", pb->table_path); if (rc) LOGERR (klogFatal, rc, "Failed to create table"); else { rc = VTableCreateCursorWrite (pb->table, &pb->cursor, kcmCreate); if (rc) LOGERR (klogFatal, rc, "Failed to create cursor"); else { rc = VCursorAddColumn (pb->cursor, &pb->idx, "READ"); if (rc) LOGERR (klogFatal, rc, "Failed to add READ to cursor"); else { rc = VCursorOpen (pb->cursor); if (rc) LOGERR (klogFatal, rc, "Failed to open cursor"); else { rc = write_rows (pb); if (rc == 0) VCursorCommit (pb->cursor); } } VCursorRelease (pb->cursor); } VTableRelease (pb->table); } } VSchemaRelease (pb->schema); } VDBManagerRelease (pb->mgr); } KMMapRelease (pb->mmap); } KFileRelease (pb->file); } KDirectoryRelease (pb->pwd); } return rc; }
rc_t KMain ( int argc, char *argv [] ) { VDBManager *vmgr; rc_t rc = VDBManagerMakeUpdate ( & vmgr, NULL ); if ( rc != 0 ) LOGERR ( klogInt, rc, "failed to make update manager" ); else { VSchema *vschema; rc = VDBManagerMakeSchema ( vmgr, & vschema ); if ( rc != 0 ) LOGERR ( klogInt, rc, "failed to make empty schema" ); else { const char *file = "align/align.vschema"; #if _DEBUGGING VSchemaListSymtab ( vschema ); #endif rc = VSchemaParseFile ( vschema, "align/align.vschema" ); #if _DEBUGGING VSchemaListSymtab ( vschema ); #endif if ( rc != 0 ) { pLOGERR ( klogErr, rc, "failed to parse schema file '$(file)'" , "file=%s" , file ); } else { VDatabase *vdb; const char *path = "test-ac-db"; const char *typespec = "NCBI:align:db:alignment"; rc = VDBManagerCreateDB ( vmgr, & vdb, vschema, typespec, kcmInit, path ); if ( rc != 0 ) { pLOGERR ( klogInt, rc, "failed to create '$(typespec)' db at '$(path)'" , "typespec=%s,path=%s" , typespec , path ); } else { VTable *vtbl; const char *member = "align"; path = member; rc = VDatabaseCreateTable ( vdb, & vtbl, member, kcmInit, path ); if ( rc != 0 ) { pLOGERR ( klogInt, rc, "failed to create '$(member)' table at '$(path)'" , "member=%s,path=%s" , member , path ); } else { printf ( "done\n" ); VTableRelease ( vtbl ); } VDatabaseRelease ( vdb ); } } VSchemaRelease ( vschema ); } VDBManagerRelease ( vmgr ); } return rc; }
static rc_t open_and_run (Context * context) { KDirectory * pwd; rc_t rc; rc = KDirectoryNativeDir (&pwd); if (rc) LOGERR (klogFatal, rc, "Unable to open file system"); else { if (PathExists (pwd, kptDile, context->file_path)) { if (PathExists (pwd, kptDile, context->file_path)) { VDBManager * vmgr; rc = VDBManagerMakeUpdate (&vmgr, pwd); if (rc) LOGERR (kptInt, "Failed to create a database manager"); else { VSchema * vschema; rc = VDBManagerMakeSchema (vmgr, &vschema); if (rc) LOGERR (kptInt, "Failed to create schema"); else { rc = VSchemaParseFile (vschema, args->schema); if (rc) PLOGERR (klogFatal, (klogFatal, "Unable to parse schema file ($S)", "S=%s", args->schema)); else { VTable * vtable; rc = VDBManagerOpenTableUpdate (vmgr, &vtable, SCHEMA, args->table); if (rc) PLOGERR (klogFatal, (klogFatal, "Unable to open table ($T)", "T=%s", args->table)); else { VTableRelease (vtable); } } VSchemaRelease (vschema); } VDBManagerRelease (vmgr); } } else PLOGERR (kptFatal, (kptFatal, "table paramaeter is not a table directory ($F)", "F=%s", args->table)); } else PLOGERR (kptFatal, (kptFatal, "file paramaeter is not a file ($F)", "F=%s", context->file_path)); KPathType pt; pt = KDirectoryPathType (arg->file); if ((pt & ~kptAlias) != kptFile) else { } KDirectoryRelease (pwd); } return rc; }
rc_t run_tests (void) { VDBManager * mgr; rc_t rc; if (verbose) printf("%s call VDBManagerMakeUpdate\n", __func__); rc = VDBManagerMakeUpdate (&mgr, NULL); if (rc) { LOGERR (klogInt, rc, "Failed to open VDBManager"); return rc; } else { VSchema * schema; if (verbose) printf("%s call VDBManagerMakeSchema\n", __func__); rc = VDBManagerMakeSchema (mgr, &schema); printf("%s schema == %p\n", __func__, (void*)schema); if (rc) LOGERR (klogInt, rc, "Failed to make empty schema"); else { if(verbose) printf("%s call VSchemaParseText\n", __func__); rc = VSchemaParseText (schema, "rowlen_schema", schema_text, string_size (schema_text)); if (rc) LOGERR (klogInt, rc, "Failed to parse internal schema"); else { int ix; for ( ix = 0; ix < 6; ++ix) { VTable * table; rc_t orc; if (verbose) printf("%s call open_table\n", __func__); rc = open_table (mgr, schema, &table); if (rc) { LOGERR (klogErr, rc, "Failed to open table"); break; } if (verbose) printf("%s call run_test\n", __func__); rc = run_test (table, &tests[ix]); if (rc) { pLOGERR (klogErr, rc, "Failed $(D)", PLOG_S(D), tests[ix].test_name); } if (verbose) printf("%s call VTableRelease\n", __func__); orc = VTableRelease (table); if (orc) { LOGERR (klogErr, rc, "failed to close table"); } if (orc && (rc == 0)) rc = orc; if (rc) break; } } if (verbose) printf("%s call VSchemaRelease\n", __func__); VSchemaRelease (schema); } if (verbose) printf("%s call VDBManagerRelease\n", __func__); VDBManagerRelease (mgr); } return rc; }