Overview
Comment: | About 1/3 of db: routines converted (first pass, no debug or testing) to use hierarchial db |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | refactor-db |
Files: | files | file ages | folders |
SHA1: |
1f4e2610009f0b0f1e8372bea4e0079a |
User & Date: | matt on 2013-10-16 01:02:51 |
Other Links: | branch diff | manifest | tags |
Context
2013-10-17
| ||
00:19 | More conversion done for move to divided db check-in: 37d1161e33 user: matt tags: refactor-db | |
2013-10-16
| ||
01:02 | About 1/3 of db: routines converted (first pass, no debug or testing) to use hierarchial db check-in: 1f4e261000 user: matt tags: refactor-db | |
00:58 | About 1/3 of db: routines converted (first pass, no debug or testing) to use hierarchial db check-in: 83e5db6b89 user: matt tags: refactor-db | |
Changes
Modified db.scm from [6b4c38c903] to [b652df5659].
︙ | ︙ | |||
785 786 787 788 789 790 791 | ;; FIRST PASS CONVERSION DONE TO HERE | | < < < < < < < > > > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < > | | 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 | ;; FIRST PASS CONVERSION DONE TO HERE ;; Convert calling routines to get list of run-ids and loop, do not use the get-tests-for-runs ;; ;; ;; ;; get a useful subset of the tests data (used in dashboard ;; ;; ;; use db:mintests-get-{id ,run_id,testname ...} ;; ;; (define (db:get-tests-for-runs-mindata dbstruct run-ids testpatt states status not-in) ;; ;; (db:get-tests-for-runs dbstruct run-ids testpatt states status not-in: not-in qryvals: "id,run_id,testname,state,status,event_time,item_path")) ;; ;; ;; ;; ;; NB // This is get tests for "runs" (note the plural!!) ;; ;; ;; ;; ;; ;; states and statuses are lists, turn them into ("PASS","FAIL"...) and use NOT IN ;; ;; ;; i.e. these lists define what to NOT show. ;; ;; ;; states and statuses are required to be lists, empty is ok ;; ;; ;; not-in #t = above behaviour, #f = must match ;; ;; ;; run-ids is a list of run-ids or a single number or #f for all runs ;; ;; (define (db:get-tests-for-runs dbstruct run-ids testpatt states statuses ;; ;; #!key (not-in #t) ;; ;; (sort-by #f) ;; ;; (qryvals "id,run_id,testname,state,status,event_time,host,cpuload,diskfree,uname,rundir,item_path,run_duration,final_logf,comment")) ;; 'rundir 'event_time ;; ;; (let* ((res '()) ;; ;; ;; if states or statuses are null then assume match all when not-in is false ;; ;; (states-qry (if (null? states) ;; ;; #f ;; ;; (conc " state " ;; ;; (if not-in "NOT" "") ;; ;; " IN ('" ;; ;; (string-intersperse states "','") ;; ;; "')"))) ;; ;; (statuses-qry (if (null? statuses) ;; ;; #f ;; ;; (conc " status " ;; ;; (if not-in "NOT" "") ;; ;; " IN ('" ;; ;; (string-intersperse statuses "','") ;; ;; "')"))) ;; ;; (tests-match-qry (tests:match->sqlqry testpatt)) ;; ;; (qry (conc "SELECT " qryvals ;; ;; " FROM tests WHERE state != 'DELETED' " ;; ;; (if run-ids ;; ;; (if (list? run-ids) ;; ;; (conc "AND run_id IN (" (string-intersperse (map conc run-ids) ",") ") ") ;; ;; (conc "AND run_id=" run-ids " ")) ;; ;; " ") ;; #f => run-ids don't filter on run-ids ;; ;; (if states-qry (conc " AND " states-qry) "") ;; ;; (if statuses-qry (conc " AND " statuses-qry) "") ;; ;; (if tests-match-qry (conc " AND (" tests-match-qry ") ") "") ;; ;; (case sort-by ;; ;; ((rundir) " ORDER BY length(rundir) DESC;") ;; ;; ((event_time) " ORDER BY event_time ASC;") ;; ;; (else ";")) ;; ;; ))) ;; ;; (debug:print-info 8 "db:get-tests-for-runs qry=" qry) ;; ;; (sqlite3:for-each-row ;; ;; (lambda (a . b) ;; id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment) ;; ;; (set! res (cons (apply vector a b) res))) ;; id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment) res))) ;; ;; db ;; ;; qry ;; ;; ) ;; ;; res)) ;; this one is a bit broken BUG FIXME (define (db:delete-test-step-records db test-id #!key (work-area #f)) ;; Breaking it into two queries for better file access interleaving (let* ((tdb (db:open-test-db-by-test-id db test-id work-area: work-area))) ;; test db's can go away - must check every time (if tdb |
︙ | ︙ |