1#!/usr/bin/env python 2 3from vdb import * 4 5#for this to work you need: 6#at $HOME/.ncbi/lib64 : libncbi-wvdb.so 7 8schematxt = ''' 9version 1; 10table A_TABLE #1.0 11{ 12 column U8 C1; 13 column U32 C2; 14 column ascii C3; 15 column I16 C4; 16 column F32 C5; 17 column bool C6; 18}; 19 20''' 21 22def fill_table_random( cur, cols, row_count, value_count ) : 23 for idx in xrange( 0, row_count ) : 24 cur.OpenRow() 25 cols[ "C1" ].write_rand( value_count, 100 ) 26 cols[ "C2" ].write_rand( value_count, 100000 ) 27 cols[ "C3" ].write_rand( value_count ) 28 cols[ "C4" ].write_rand( value_count, 100000 ) 29 cols[ "C5" ].write_rand( value_count, 100000 ) 30 cols[ "C6" ].write_rand( value_count ) 31 cur.CommitRow() 32 cur.CloseRow() 33 34def fill_table_with_values( cur, cols ) : 35 cur.OpenRow() 36 cols[ "C1" ].write( [ 1, 2, 3, 4 ] ) 37 cols[ "C2" ].write( [ 1000, 1001, 1002 ] ) 38 cols[ "C3" ].write( "hallo" ) 39 cols[ "C4" ].write( [ 101010, 2020, 3030 ] ) 40 cols[ "C5" ].write( [ 10.101, 20.202, 30.303 ] ) 41 cols[ "C6" ].write( [ True, True, False, False, True ] ) 42 cur.CommitRow() 43 cur.CloseRow() 44 45def fill_table_with_single_values( cur, cols ) : 46 cur.OpenRow() 47 cols[ "C1" ].write( 1 ) 48 cols[ "C2" ].write( 1000 ) 49 cols[ "C3" ].write( "hallo" ) 50 cols[ "C4" ].write( 5544 ) 51 cols[ "C5" ].write( 55.5 ) 52 cols[ "C6" ].write( True ) 53 cur.CommitRow() 54 cur.CloseRow() 55 56def fill_table_with_default_values( cur, cols, row_count ) : 57 cols[ "C1" ].set_default( [ 100, 101 ] ) 58 for idx in xrange( 0, row_count ) : 59 cur.OpenRow() 60 cols[ "C2" ].write( [ 10 + idx, 11 + idx, 12 + idx ] ) 61 cols[ "C3" ].write( "line #%d"%idx ) 62 cols[ "C4" ].write( [ 101 + idx, 102 + idx, 103 + idx ] ) 63 cols[ "C5" ].write( [ 10.1 + idx, 20.2 + idx, 30.3 + idx ] ) 64 cols[ "C6" ].write( [ True ] ) 65 cur.CommitRow() 66 cur.CloseRow() 67 68def make_table( mgr, schema_txt, table_name ) : 69 try : 70 schema = mgr.MakeSchema( schema_txt ) 71 tbl = mgr.CreateTable( schema, "A_TABLE", table_name ) 72 cur = tbl.CreateCursor( OpenMode.Write ) 73 cols = cur.OpenColumns( [ "C1", "C2", "C3", "C4", "C5", "C6" ] ) 74 fill_table_random( cur, cols, 2, 5 ) 75 fill_table_with_values( cur, cols ) 76 fill_table_with_single_values( cur, cols ) 77 fill_table_with_default_values( cur, cols, 2 ) 78 cur.Commit() 79 except vdb_error as e : 80 print( e ) 81 82 83if __name__ == '__main__' : 84 85 table_name = "L3" 86 87 try : 88 #open a manager 89 mgr = manager( OpenMode.Write, None ) 90 91 make_table( mgr, schematxt, table_name ) 92 mgr.OpenTable( table_name ).print_rows() 93 94 except vdb_error as e : 95 print( e ) 96