You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(267) |
Nov
(344) |
Dec
(119) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(23) |
Feb
(15) |
Mar
(16) |
Apr
(388) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
From: <tw...@us...> - 2002-11-13 19:18:40
|
Update of /cvsroot/genex/genex-server In directory usw-pr-cvs1:/tmp/cvs-serv30034 Modified Files: Tag: Rel-1_0_1-branch genex_schema.sql Log Message: a few typos were corrected from last version. I also added a few indexes for the spots tables. Index: genex_schema.sql =================================================================== RCS file: /cvsroot/genex/genex-server/genex_schema.sql,v retrieving revision 1.3.2.17 retrieving revision 1.3.2.18 diff -C2 -d -r1.3.2.17 -r1.3.2.18 *** genex_schema.sql 11 Nov 2002 20:20:51 -0000 1.3.2.17 --- genex_schema.sql 13 Nov 2002 19:18:32 -0000 1.3.2.18 *************** *** 44,48 **** REVOKE ALL on "am_spots_mas5_ams_mas5_pk_seq" from PUBLIC; GRANT ALL on "am_spots_mas5_ams_mas5_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_mas5_ams_mas5a_pk_seq" to "readonly"; -- --- 44,48 ---- REVOKE ALL on "am_spots_mas5_ams_mas5_pk_seq" from PUBLIC; GRANT ALL on "am_spots_mas5_ams_mas5_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_mas5_ams_mas5_pk_seq" to "readonly"; -- *************** *** 2083,2087 **** -- ! CREATE VIEW "am_spots_usf_view" as SELECT ams.ams_pk, ams.am_fk, usf.usf_pk AS usf_fk FROM am_spots_mas5 ams, usersequencefeature usf, arraymeasurement am, al_spots als WHERE ((((am.instance_code = 'als'::"varchar") AND (am.am_pk = ams.am_fk)) AND (ams.usf_fk = als.als_pk)) AND (als.usf_fk = usf.usf_pk)); -- --- 2083,2090 ---- -- ! ! -- Jodi: We are no longer creating this view. This view was created originally by Michael Pear when we had one spots table for all types of derived data. We now have multiple spots values and no need for this view. Michael was also changing the am_spots.usf_fk to the als_pk of the al_spots table. We have since renamed this field to reflect what data actually exists in the spots tables. ! ! --CREATE VIEW "am_spots_usf_view" as SELECT ams.ams_pk, ams.am_fk, usf.usf_pk AS usf_fk FROM am_spots_mas5 ams, usersequencefeature usf, arraymeasurement am, al_spots als WHERE ((((am.instance_code = 'als'::"varchar") AND (am.am_pk = ams.am_fk)) AND (ams.usf_fk = als.als_pk)) AND (als.usf_fk = usf.usf_pk)); -- *************** *** 2091,2097 **** -- ! REVOKE ALL on "am_spots_usf_view" from PUBLIC; ! GRANT ALL on "am_spots_usf_view" to "genex"; ! GRANT SELECT on "am_spots_usf_view" to "readonly"; --- 2094,2100 ---- -- ! --REVOKE ALL on "am_spots_usf_view" from PUBLIC; ! --GRANT ALL on "am_spots_usf_view" to "genex"; ! --GRANT SELECT on "am_spots_usf_view" to "readonly"; *************** *** 2222,2226 **** ! CREATE UNIQUE INDEX "am_spots_pkey" on "am_spots_mas5" using btree ( "ams_pk" "int4_ops" ); -- --- 2225,2229 ---- ! CREATE UNIQUE INDEX "ams_mas5_pkey" on "am_spots_mas5" using btree ( "ams_mas5_pk" "int4_ops" ); -- *************** *** 2230,2234 **** -- ! CREATE INDEX "ams_am_fk_ind" on "am_spots_mas5" using btree ( "am_fk" "int4_ops" ); -- --- 2233,2237 ---- -- ! CREATE INDEX "ams_mas5_am_fk_ind" on "am_spots_mas5" using btree ( "am_fk" "int4_ops" ); -- *************** *** 2238,2251 **** -- ! CREATE INDEX "ams_usf_fk_ind" on "am_spots_mas5" using btree ( "usf_fk" "int4_ops" ); ! CREATE UNIQUE INDEX "am_spots4_pkey" on "am_spots_mas4" using btree ( "ams_pk" "int4_ops" ); ! CREATE INDEX "ams4_am_fk_ind" on "am_spots_mas4" using btree ( "am_fk" "int4_ops" ); - CREATE INDEX "ams4_usf_fk_ind" on "am_spots_mas4" using btree ( "usf_fk" "int4_ops" ); -- --- 2241,2266 ---- -- ! CREATE INDEX "ams_mas5_als_fk_ind" on "am_spots_mas5" using btree ( "als_fk" "int4_ops" ); ! CREATE UNIQUE INDEX "ams_mas4_pkey" on "am_spots_mas4" using btree ( "ams_mas4_pk" "int4_ops" ); ! CREATE INDEX "ams_mas4_am_fk_ind" on "am_spots_mas4" using btree ( "am_fk" "int4_ops" ); ! ! ! CREATE INDEX "ams_mas4_als_fk_ind" on "am_spots_mas4" using btree ( "als_fk" "int4_ops" ); ! ! ! ! CREATE UNIQUE INDEX "ams_dchip_pkey" on "am_spots_dchip" using btree ( "ams_dchip_pk" "int4_ops" ); ! ! ! CREATE INDEX "ams_dchip_am_fk_ind" on "am_spots_dchip" using btree ( "am_fk" "int4_ops" ); ! ! ! CREATE INDEX "ams_dchip_als_fk_ind" on "am_spots_dchip" using btree ( "als_fk" "int4_ops" ); -- |
Update of /cvsroot/genex/genex-server/site/webtools In directory usw-pr-cvs1:/tmp/cvs-serv6331 Modified Files: Tag: Rel-1_0_1-branch sessionlib.pl edit_sample2.pl edit_am1.pl edit_atree1.html analysis_tree_lib.pl sql_lib.pl edit_atree2.pl edit_atree1.pl insert_tree.pl Added Files: Tag: Rel-1_0_1-branch loadaffylayout.pl AffyLayoutReader.pm Log Message: layout code added back into the repository. format fixes to the atree. non-select bug fixed in edit_sample2.pl error message added to edit_sampel2.pl --- NEW FILE: loadaffylayout.pl --- #!/usr/bin/perl use strict; use Getopt::Long; use vars qw(%options $target_database $array_layout_name $input_excel $gene_name_column $refRow $contact $contact_key $array_layout_key %gene_keys $dbh); use AffyLayoutReader; require "./sessionlib.pl"; main: { my $sql; #Get command line options my $rc = GetOptions(\%options, "help", "name=s", "genenames=s", "input=s", "dbname=s", "provider=i", "login=s", "update", "nocommit", "tab", "speciesid=i"); # a test mode my $USAGE = <<"EOU"; usage: $0 [options] --name=array_layout_name --input=input_excel_file options: --name=chip_name --dbname=target_database_name --login=userid --nocommit --tab --speciesid=nn where nn is a number. Human is 50, mouse is 41. See the species table in the database. For example: loadaffylayout.pl --dbname=genex --name=HG-U95Av2 --input=./samples/HG-U95Av2/HG-U95Av2.xls --login=mst3k --speciesid=50 EOU die "$USAGE\n" if exists $options{help}; if (exists($options{provider})) { print "--provider no longer used. Use --login=login for example --login=mst3k\n"; exit(); } die "Bad option: $rc\n$USAGE" unless $rc; die "Must specify --name for array layout in database\n" unless exists $options{name}; die "Must specify --input excel filename for array layout\n" unless exists $options{input}; die "Must specify --speciesid Human is 50, mouse is 41.\n" unless exists $options{speciesid}; $target_database = exists($options{dbname}) ? $options{dbname} : "genex-test"; $gene_name_column = exists($options{genenames}) ? $options{genenames} : "none"; if (exists($options{nocommit})) { print "Changes will not be committed, nocommit option used, test run only. \n"; } my $date = `date`; chomp($date); print "$0 starts at $date with options:\n"; my $opt; foreach $opt (keys %options) { print "$opt: $options{$opt}\n"; } # #Connect to input excel file # print "Instantiating AffyLayoutReader "; my $ofh = select(STDOUT); $| = 1; select($ofh); my $arraylayoutreader = new AffyLayoutReader ($options{input}); print "[OK]\n"; # #Set up array layout shell in database # print "Creating connection "; $ofh = select(STDOUT); $| = 1; select($ofh); $dbh = new_connection(); print "[OK]\n"; # # aug 19 2002 Tom: don't make user enter numeric userid. Allow them to enter a login (aka userid) and get # the numeric id from usersec. Remember, groupsec,usersec and contact all share the same primary key # $sql = "select us_pk from usersec where login='$options{login}'"; ($contact_key) = $dbh->selectrow_array($sql); my $us_fk = $contact_key; my $array_layout; my $array_layout_key; if (exists($options{update})) { my $al_sql = "select al_pk from arraylayout where name=?"; my $al_sth = $dbh->prepare($sql) || die "$al_sql\n$DBI::errstr\n"; $al_sth->execute($options{name}) || die "$al_sql\n$DBI::errstr\n"; if ($al_sth->rows() > 1) { die "Multiple array layouts with name $options{name}\n"; } if ($al_sth->rows() == 0) { die "No array layout with name $options{name} to update\n"; } ($array_layout_key) = $al_sth->fetchrow_array() || die "$al_sql\n$DBI::errstr\n"; # $array_layout->al_pk(); $al_sth->finish(); } else { print "Instantiating ArrayLayout "; $ofh = select(STDOUT); $| = 1; select($ofh); # # Confirm contact information # my $sql = "select con_pk from contact where con_pk=$contact_key"; my $sth = $dbh->prepare($sql) || die "$sql\n$DBI::errstr\n"; $sth->execute(); if ($sth->rows() != 1) { die "Bad contact key $contact_key. Rows returned: " . $sth->rows() . "\n"; } $sth->finish(); my %array_layout; $array_layout{name} = $options{name}; $array_layout{technology_type} = 'affymetrix'; $array_layout{con_fk} = $contact_key; # # Need to generalize the identifier code...should it just be name? - mpear 7/16/01 # 2002-02-28 Tom Laudeman # This can't be a static string, so I'll make same as name # $array_layout{identifier_code} = $options{name}; $array_layout{medium} = 'sequence_instance'; $sql = "insert into arraylayout (name, technology_type, con_fk, identifier_code, medium) values (?, ?, ?, ?, ?)"; $sth = $dbh->prepare($sql); $sth->execute($array_layout{name}, $array_layout{technology_type}, $array_layout{con_fk}, $array_layout{identifier_code}, $array_layout{medium}); # # userid and groupid are both of the curator who installed the layout # my $permissions = 420; # octal 644 rw-r--r-- layouts are world readable. $array_layout_key = insert_security($dbh, $us_fk, $us_fk, $permissions); print "[OK]\n"; } # # aug 16 2002 Tom: instead of instantiating a Bio::Genex class, fill in a hash and use DBI/SQL for # my %usf; $usf{spc_fk} = $options{speciesid}; $usf{chromosome} = 'affy-human'; $usf{usf_type} = 'gene_name'; # #Set up AL_Spots template # # al_fk -> newly inserted array_layout # usf_fk -> gene inserted for this array layout # spot_identifier->SpotID # spot_type->sequence_feature or control_dna depending on SpotType my %al_spot; $al_spot{al_fk} = $array_layout_key; my $num_features=0; my $num_blanks=0; my $num_genes=0; # # SQL statements we'll use below. Prepare these to make corresponding _sth vars, # except for the seq_new_pk_sql, which gets run without a prepare. # Don't Panic. # my $seq_update_sql = "update usersequencefeature set usf_name=?, spc_fk=?, chromosome=?, usf_type=?, short_description=?, clone_name=?, other_name=?, other_type=?, start_position=?, end_position=? where usf_pk=?"; my $seq_insert_sql = "insert into usersequencefeature (usf_name, spc_fk, chromosome, usf_type, short_description, clone_name, other_name, other_type, start_position, end_position) values (?,?,?,?,?,?,?,?,?,?)"; my $al_spot_update_sql = "update al_spots set al_fk=?, spot_type=?, spot_identifier=?, usf_fk=? where als_pk=?"; my $al_spot_insert_sql = "insert into al_spots (al_fk, spot_type, spot_identifier, usf_fk) values (?,?,?,?)"; my $find_al_spots_sql = "select als_pk,usf_fk from al_spots where al_fk=$array_layout_key and spot_identifier=?"; my $seq_new_pk_sql = "select last_value from usersequencefeature_usf_pk_seq"; # # sth vars for the SQL above # my $seq_update_sth = $dbh->prepare($seq_update_sql); my $seq_insert_sth = $dbh->prepare($seq_insert_sql); my $al_spot_update_sth = $dbh->prepare($al_spot_update_sql); my $al_spot_insert_sth = $dbh->prepare($al_spot_insert_sql); my $find_al_spots_sth = $dbh->prepare($find_al_spots_sql); my $do_update; my $aks_pk; my $usf_fk; while (defined($refRow = $arraylayoutreader->get_next_datarow())) { if (($num_genes % 200 == 0) || ($num_features % 200 == 0)) { print "Processed genes: $num_genes features: $num_features\n"; } $do_update = 0; if (exists($options{update})) { # # If we are updating, get the als_pk and usf_fk # from the record we are updating. # $find_al_spots_sth->execute($refRow->{SpotID}); my $found_rows = $find_al_spots_sth->rows(); if ($found_rows > 1) { die "Found $found_rows spots for $refRow->{SpotID}\n"; } if ($found_rows == 0) { die "No spots for $refRow->{SpotID}\n"; } ($aks_pk, $usf_fk) = $find_al_spots_sth->fetchrow_array(); $find_al_spots_sth->finish(); $do_update = 1; } #Process Gene Identifiers #Insert new gene if unique for this arraylayout addition if (! exists $gene_keys{$refRow->{GeneID}}) { #Split up gene description $usf{usf_name} = $refRow->{GeneID}; $usf{short_description} = $refRow->{GeneDescription}; $usf{chromosome} = 'affy-human'; $usf{other_type} = ' '; if (exists($refRow->{clone})) { $usf{clone_name} = $refRow->{clone}; } else { $usf{clone_name} = 'NA'; } #unigene reference if (exists($refRow->{ug})) { $usf{other_name} = $refRow->{ug}; $usf{other_type} = 'ug'; } else { $usf{other_name} = $refRow->{GeneID}; $usf{other_type} = 'gb'; } if (exists($refRow->{cds})) { my $work = $refRow->{cds}; $work =~ s/^\(//; $work =~ s/\).*$//; my ($start,$end) = split ",",$work; if ($start =~ /^\d+$/) { $usf{start_position} = $start; } if ($end =~ /^\d+$/) { $usf{end_position} = $end; } } if ($do_update == 1) { $gene_keys{$refRow->{GeneID}} = $usf_fk; # usf_fk from the al_spots record we're updating. $seq_update_sth->execute($usf{usf_name}, $usf{spc_fk}, $usf{chromosome}, $usf{usf_type}, $usf{short_description}, $usf{clone_name}, $usf{other_name}, $usf{other_type}, $usf{start_position}, $usf{end_position}, $usf_fk); } else { my $len = length($usf{short_description}); if ($len > 500) { print "Warning: description is $len chars, data line $num_features (+7), $usf{short_description}\n"; } $seq_insert_sth->execute($usf{usf_name}, $usf{spc_fk}, $usf{chromosome}, $usf{usf_type}, $usf{short_description}, $usf{clone_name}, $usf{other_name}, $usf{other_type}, $usf{start_position}, $usf{end_position}); (($gene_keys{$refRow->{GeneID}}) = $dbh->selectrow_array($seq_new_pk_sql)) || die "$seq_new_pk_sql\n$DBI::errstr\n"; } $num_genes++; } # #Insert or update spot referencing the appropriate inserted gene # if (! exists($options{update})) { $al_spot{usf_fk} = ($gene_keys{$refRow->{GeneID}}); } $al_spot{spot_type} = $refRow->{SpotType}; $al_spot{spot_identifier} = $refRow->{SpotID}; $num_features++; if ($do_update == 1) { $al_spot_update_sth->execute($al_spot{al_fk}, $al_spot{spot_type}, $al_spot{spot_identifier}, $al_spot{usf_fk}, $aks_pk); } else { $al_spot_insert_sth->execute($al_spot{al_fk}, $al_spot{spot_type}, $al_spot{spot_identifier}, $al_spot{usf_fk}); } } if (exists($options{nocommit})) { print "*** data not committed, nocommit command line option active***\n"; } else { $dbh->commit(); } $dbh->disconnect(); print "Added $num_genes genes, $num_features features on chip, \n"; exit; } --- NEW FILE: AffyLayoutReader.pm --- package AffyLayoutReader; use strict; use Carp; use Spreadsheet::ParseExcel; use vars qw(%COLUMNBINDING %COLUMNBINDING_TAB ); BEGIN { %COLUMNBINDING = ( 'GeneDescription' => 3, 'ProbeSet'=>1, 'GeneID'=>2, 'SpotType'=>5, ); # # 2002-03-11 # Tom Laudeman: Affymetrix calls the columns by these names # %COLUMNBINDING_TAB=( 'TargetID' => 0, 'ProbeSetID'=>1, 'SeqDerivedFrom'=>2, 'ConsensusID'=>3, 'SequenceType'=>4 ); } sub new { my ($class,$input_file)=@_; my $thisRow; die "File $input_file not found" unless (-r $input_file && -f $input_file); my $self= {}; if ($input_file =~ m/\.xls/) { my $ExcelParser = new Spreadsheet::ParseExcel; my $workbook= $ExcelParser->Parse($input_file); $self->{worksheet}= $workbook->{Worksheet}[0]; $self->{row_count}=5; } else { open(IN, "< $input_file") || die "Could not open $input_file\n"; $self->{fd} = \*IN; $self->{tab} = 1; $self->{row_count}=0; } bless $self; return $self; } sub get_next_datarow { my $this=shift; $this->{row_count}++; my %contents; if (exists($this->{tab})) { # # Perl gets upset with <$this->{fd}>, so put the file descriptor into a scalar. # # Affy provides records with varying numbers of fields. If the Probe ID is a group, # some fields repeat for each group member and for the exemplar. The exemplar # data is in the last 2 fields, thus $#cols-1 and $#cols # my $fd = $this->{fd}; my $temp; my @cols; if ( $temp = <$fd>) { chomp($temp); @cols = split('\t',$temp); } else { return undef; } $contents{RowNumber}=$this->{row_count}; $contents{GeneID}=$cols[$COLUMNBINDING_TAB{SeqDerivedFrom}]; # [$COLUMNBINDING{GeneID}] $contents{SpotID}=$cols[$COLUMNBINDING_TAB{ProbeSetID}]; # [$COLUMNBINDING{ProbeSet}] $contents{SpotType}=$cols[$#cols-1]; # [$COLUMNBINDING{SpotType}] $contents{GeneDescription}=$cols[$#cols]; # [$COLUMNBINDING{GeneDescription}] # # See comments below re: description and how it is prepared. # # Affy provides us with descriptions that have no / preceding field names, # and no spaces between words in the fields. We should wait until later # to try to parse the description field. # my $description=$cols[$#cols]; # [$COLUMNBINDING{GeneDescription}] # my @fields = split '/',$description; # my $genedescription = shift(@fields); # foreach my $field (@fields) { # my ($key,$value) = split("=", $field); # $contents{$key} = $value; # } # if (exists($contents{DEFINITION})) { # $genedescription = $contents{DEFINITION}; # } # $genedescription =~ s/^Cluster.*://; # $contents{GeneDescription} = $genedescription; # debug # printf "geneid: %s spotid %s spottype %s\n", # $contents{GeneID}, # $contents{SpotID}, # $contents{SpotType}, # $contents{GeneDescription} ; } else { my $worksheet = $this->{worksheet}; my $thisRow=$worksheet->{MinRow}+$this->{row_count}; return undef unless $thisRow <= $worksheet->{MaxRow}; $contents{RowNumber}=$thisRow; $contents{GeneID}=$worksheet->{Cells}[$thisRow][$COLUMNBINDING{GeneID}]->Value; my $description=$worksheet->{Cells}[$thisRow][$COLUMNBINDING{GeneDescription}]->Value; $contents{SpotID}=$worksheet->{Cells}[$thisRow][$COLUMNBINDING{ProbeSet}]->Value; $contents{SpotType} = $worksheet->{Cells}[$thisRow][$COLUMNBINDING{SpotType}]->Value; # # 2002-03-11 # Tom Laudeman # The old comment:Clean up redundant info and split off fields # Split fields on /, and make key-value pairs by splitting on =. # Remove a leading Cluster.*: which I've made non-greedy Cluster.*?: # # It isn't clear when exists($contents{DEFINITION}) will be true. It seems # confusing since it will overwrite whatever gene description we got from # the first field. # my @fields = split '/',$description; my $genedescription = shift @fields; foreach my $field (@fields) { my ($key,$value) = split("=", $field); $contents{$key} = $value; } if (exists($contents{DEFINITION})) { $genedescription = $contents{DEFINITION}; } $genedescription =~ s/^Cluster.*://; # # 2002-03-11 # Tom Laudeman # The following regexp did not do what the author intended, and we can't see a reason to rip # M. musculus and Mus musculus out of the description so I've commented it out. # As written below, it deletes everything from the first M in the description through the # end of musculus. Opps. # # $genedescription =~ s/M.*[mM]usculus //; $contents{GeneDescription} = $genedescription; } return \%contents; } 1; Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -C2 -d -r1.1.2.4 -r1.1.2.5 *** sessionlib.pl 11 Nov 2002 21:42:15 -0000 1.1.2.4 --- sessionlib.pl 12 Nov 2002 22:34:35 -0000 1.1.2.5 *************** *** 50,53 **** --- 50,54 ---- $messages[16] = "One or more of the samples comes from a study with duplicate experimental condition names or duplicate short names.<br>\n"; $messages[17] = "You must choose a study/experimental condition in order to paste in an experimental condition<br>\n"; + $messages[18] = "One or more of your samples doesn't have a study/experimental condition.<br>\nYou cannot choose chips for hybridizations until the study/exp. cond. is set."; return $messages[$_[0]]; *************** *** 207,211 **** # ! # called from insert_sample.pl, insert_order.pl # sub insert_samples --- 208,212 ---- # ! # called from insert_sample.pl, insert_order.pl, edit_sample2.pl # sub insert_samples *************** *** 1100,1109 **** sub get_us_fk ! { my $dbh = $_[0]; - - write_log("dbh in guf:$dbh"); - - my $login = $ENV{"REMOTE_USER"}; --- 1101,1106 ---- sub get_us_fk ! { my $dbh = $_[0]; my $login = $ENV{"REMOTE_USER"}; *************** *** 1113,1121 **** exit(); } - my $sql = "select us_pk from usersec where login='$login'"; (my $us_fk) = $dbh->selectrow_array($sql) || die "sql: $sql\n$DBI::errstr\n"; return $us_fk; ! } # --- 1110,1117 ---- exit(); } my $sql = "select us_pk from usersec where login='$login'"; (my $us_fk) = $dbh->selectrow_array($sql) || die "sql: $sql\n$DBI::errstr\n"; return $us_fk; ! } # Index: edit_sample2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_sample2.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** edit_sample2.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- edit_sample2.pl 12 Nov 2002 22:34:36 -0000 1.1.2.2 *************** *** 25,29 **** # althought the code can understand inserting multiple. # ! insert_samples($dbh, $us_fk, $oi_pk); $as_flag = 1; } --- 25,29 ---- # althought the code can understand inserting multiple. # ! insert_samples($dbh, $us_fk, $oi_pk); $as_flag = 1; } *************** *** 135,138 **** --- 135,147 ---- else { + if (!exists($ch{ec_fk}) || (! $ch{ec_fk})) + { + $ch{ec_fk} = 0; + } + if (($ch{ec_fk} == 0) && + $message !~ m/^18m|m18m/) # each sample must have a study/exp. cond. + { + $message .= "18m"; + } $ch{timestamp} = date2sql($ch{timestamp}); $sql = "update sample set ec_fk=?,timestamp=?,lab_book=trim(?),lab_book_owner=? where smp_pk=$ch{smp_pk}"; *************** *** 142,146 **** $ch{lab_book}, $ch{lab_book_owner}, ! ) || die "Update failed: $sql\n$DBI::errstr\n"; $sth->finish(); } --- 151,155 ---- $ch{lab_book}, $ch{lab_book_owner}, ! ) || die "e:$ch{ec_fk} k$ch{lab_book} r$ch{lab_book_owner} Update failed: $sql\n$DBI::errstr\n"; $sth->finish(); } Index: edit_am1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_am1.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** edit_am1.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- edit_am1.pl 12 Nov 2002 22:34:36 -0000 1.1.2.2 *************** *** 80,84 **** $sql = "select oi_pk,hybridization_name,am_pk,al_fk,arraymeasurement.comments,smp_pk,ec_pk,abbrev_name,order_number,order_date,exp_condition.name,study.study_name,timestamp from arraymeasurement,sample,exp_condition,order_info,study,$fclause where $wclause and sample.oi_fk=$ch{oi_pk} and sample.smp_pk=arraymeasurement.smp_fk and sample.ec_fk=exp_condition.ec_pk and order_info.oi_pk=sample.oi_fk and sty_pk=sty_fk order by smp_pk,am_pk;"; - my $sth = $dbh->prepare($sql) || die "$sql\n$DBI::errstr\n"; $sth->execute() || die "$sql\n$DBI::errstr\n"; --- 80,83 ---- Index: edit_atree1.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_atree1.html,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** edit_atree1.html 8 Nov 2002 21:22:53 -0000 1.1.2.5 --- edit_atree1.html 12 Nov 2002 22:34:36 -0000 1.1.2.6 *************** *** 12,15 **** --- 12,17 ---- <form action="edit_atree2.pl" method=POST> + Analysis tree name: {tree_name}<br> + <input type="text" name="tree_name" value="{tree_name}"> <input type="submit" name="Update" value="Update Name"> <input type="hidden" name="tree_pk" value="{tree_pk}"> <input type="hidden" name="root" value="{root}"> Index: analysis_tree_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/analysis_tree_lib.pl,v retrieving revision 1.1.2.26 retrieving revision 1.1.2.27 diff -C2 -d -r1.1.2.26 -r1.1.2.27 *** analysis_tree_lib.pl 11 Nov 2002 21:42:15 -0000 1.1.2.26 --- analysis_tree_lib.pl 12 Nov 2002 22:34:36 -0000 1.1.2.27 *************** *** 23,28 **** $sth->execute() || die "Query insert_tree execute fails. $DBI::errstr\n"; - write_log("dbh in i_t:$dbh"); - my $us_fk = get_us_fk($dbh); my $tree_pk = insert_security($dbh, $us_fk, $us_fk, 0); --- 23,26 ---- *************** *** 265,268 **** --- 263,269 ---- my $sth; + $sth = getq("update_tree_name", $dbh); + $sth->execute($tree{tree_name}, $tree{tree_pk}); + if (exists($tree{add_an_fk})) { *************** *** 320,328 **** my $sth = getq("read_tree", $dbh); $sth->execute($tree_pk) || die "Query read_tree execute error: $DBI::errstr\n"; ! while(( my $node_pk, my $an_name, my $parent_key, my $an_fk) = $sth->fetchrow_array()) { if ($parent_key == -1) { $tree{root} = $node_pk; } push(@{$tree{$node_pk}}, $an_name); --- 321,330 ---- my $sth = getq("read_tree", $dbh); $sth->execute($tree_pk) || die "Query read_tree execute error: $DBI::errstr\n"; ! while(( my $tree_name, my $node_pk, my $an_name, my $parent_key, my $an_fk) = $sth->fetchrow_array()) { if ($parent_key == -1) { $tree{root} = $node_pk; + $tree{tree_name} = $tree_name; } push(@{$tree{$node_pk}}, $an_name); *************** *** 332,336 **** write_log("pk:$node_pk n:$an_name p:$parent_key a:$an_fk t:$tree_pk"); } ! return $tree{root}; } --- 334,339 ---- write_log("pk:$node_pk n:$an_name p:$parent_key a:$an_fk t:$tree_pk"); } ! # I know... %tree is a package global, and we're returning it. ! return %tree; } Index: sql_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sql_lib.pl,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** sql_lib.pl 11 Nov 2002 21:42:15 -0000 1.1.2.5 --- sql_lib.pl 12 Nov 2002 22:34:36 -0000 1.1.2.6 *************** *** 17,24 **** die "Database handle undefined in sql_lib.pl getq()\n"; } - my $us_fk = get_us_fk($dbh); my $sth; - my $fclause; - my $wclause; my $ok_flag = 0; my $sql; --- 17,21 ---- *************** *** 26,29 **** --- 23,29 ---- if ($q_name eq "select_tree") { + my $us_fk = get_us_fk($dbh); + my $fclause; + my $wclause; ($fclause, $wclause) = write_where_clause("tree", "tree_pk", $us_fk ); $sql = "select tree_name,tree_pk from tree,$fclause where $wclause order by tree_name"; *************** *** 39,43 **** elsif ($q_name eq "read_tree") { ! $sql = "select node_pk, an_name, parent_key, an_fk from node, analysis where tree_fk=? and an_fk=an_pk order by node_pk"; } elsif ($q_name eq "update_tree_node") --- 39,43 ---- elsif ($q_name eq "read_tree") { ! $sql = "select tree_name, node_pk, an_name, parent_key, an_fk from tree, node, analysis where tree_fk=? and tree_pk=tree_fk and an_fk=an_pk order by node_pk"; } elsif ($q_name eq "update_tree_node") *************** *** 56,59 **** --- 56,63 ---- { $sql = "select min(an_pk) from analysis"; # By convention, insert Quality Control (the default) first + } + elsif ($q_name eq "update_tree_name") + { + $sql = "update tree set tree_name=? where tree_pk=?"; } Index: edit_atree2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_atree2.pl,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** edit_atree2.pl 8 Nov 2002 21:22:53 -0000 1.1.2.5 --- edit_atree2.pl 12 Nov 2002 22:34:36 -0000 1.1.2.6 *************** *** 70,73 **** --- 70,74 ---- $tree{tree_pk} = $ch{tree_pk}; $tree{root} = $ch{root}; + $tree{tree_name} = $ch{tree_name}; return %tree; } Index: edit_atree1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_atree1.pl,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** edit_atree1.pl 8 Nov 2002 21:22:53 -0000 1.1.2.2 --- edit_atree1.pl 12 Nov 2002 22:34:36 -0000 1.1.2.3 *************** *** 14,18 **** my $dbh = new_connection(); ! my $root = read_db($dbh, $tree_pk); my $atree = render_at(); my $select_node = select_node($dbh); --- 14,18 ---- my $dbh = new_connection(); ! my %tree = read_db($dbh, $tree_pk); my $atree = render_at(); my $select_node = select_node($dbh); *************** *** 22,26 **** $all_html =~ s/{message}//s; $all_html =~ s/{tree_pk}/$tree_pk/sg; ! $all_html =~ s/{root}/$root/sg; $all_html =~ s/{select_node}/$select_node/sg; $all_html =~ s/{atree}/$atree/sg; --- 22,27 ---- $all_html =~ s/{message}//s; $all_html =~ s/{tree_pk}/$tree_pk/sg; ! $all_html =~ s/{tree_name}/$tree{tree_name}/sg; ! $all_html =~ s/{root}/$tree{root}/sg; $all_html =~ s/{select_node}/$select_node/sg; $all_html =~ s/{atree}/$atree/sg; Index: insert_tree.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/insert_tree.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** insert_tree.pl 8 Nov 2002 21:22:53 -0000 1.1.2.1 --- insert_tree.pl 12 Nov 2002 22:34:36 -0000 1.1.2.2 *************** *** 11,15 **** --- 11,17 ---- my $q = new CGI; my $dbh = new_connection(); + my $tree_pk = insert_tree($dbh); + my $url = index_url(); # see sessionlib.pl $url =~ s/(.*)\/.*/$1\/edit_atree1.pl/; |
From: <td...@us...> - 2002-11-12 16:32:32
|
Update of /cvsroot/genex/genex-server/site/webtools In directory usw-pr-cvs1:/tmp/cvs-serv508 Modified Files: Tag: Rel-1_0_1-branch add_analysis.pl Log Message: Updated for new field names Index: add_analysis.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/add_analysis.pl,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** add_analysis.pl 7 Nov 2002 20:43:59 -0000 1.1.2.2 --- add_analysis.pl 12 Nov 2002 16:32:28 -0000 1.1.2.3 *************** *** 151,158 **** my $stm = ""; my $record; my @records = parse_into_records(@$filetype); - # TODO - handle spaces in keys foreach $record (@records) { --- 151,158 ---- my $stm = ""; my $record; + my $table = "filetypes"; my @records = parse_into_records(@$filetype); foreach $record (@records) { *************** *** 160,174 **** my $name = $rec{name}; my $comment = $rec{comment}; ! checkValidFields([ "name" ], ["name", "comment"], $record); if ($action eq "remove") { ! $stm = "delete from filetypes where name = '$name'"; } else { ! $stm = "insert into filetypes (name, comment) " . ! "values ('$name', '$comment');"; } print "$stm\n" if $debug; --- 160,176 ---- my $name = $rec{name}; my $comment = $rec{comment}; + my $arg_name = $rec{arg_name}; ! checkValidFields($table, [ "name", "arg_name" ], ["name", "comment", "arg_name"], ! $record); if ($action eq "remove") { ! $stm = "delete from $table where ft_name = '$name'"; } else { ! $stm = "insert into $table (ft_name, ft_comments, arg_name) " . ! "values ('$name', '$comment', '$arg_name');"; } print "$stm\n" if $debug; *************** *** 186,194 **** if ($action eq "remove") { ! $stm = "delete from analysis where name = '$name'"; } else { ! $stm = "insert into analysis (name, cmdstr) values ('$name', '$cmdstr');"; } --- 188,196 ---- if ($action eq "remove") { ! $stm = "delete from analysis where an_name = '$name'"; } else { ! $stm = "insert into analysis (an_name, cmdstr) values ('$name', '$cmdstr');"; } *************** *** 213,217 **** my %rec = %$record; ! checkValidFields([ "filetype","ext" ], ["filetype", "ext"], $record); my $filetype = $rec{filetype}; --- 215,219 ---- my %rec = %$record; ! checkValidFields($table, [ "filetype","ext" ], ["filetype", "ext"], $record); my $filetype = $rec{filetype}; *************** *** 219,223 **** # select the filetypes pk for the filetype ! $stm = $dbh->prepare("select ft_pk from filetypes where name= '$filetype'"); $stm->execute(); --- 221,225 ---- # select the filetypes pk for the filetype ! $stm = $dbh->prepare("select ft_pk from filetypes where ft_name= '$filetype'"); $stm->execute(); *************** *** 257,261 **** # select the analysis pk for the analysis ! $stm = $dbh->prepare("select an_pk from analysis where name = '$name'"); $stm->execute(); --- 259,263 ---- # select the analysis pk for the analysis ! $stm = $dbh->prepare("select an_pk from analysis where an_name = '$name'"); $stm->execute(); *************** *** 272,276 **** my %rec = %$record; ! checkValidFields([ "filetype","input" ], ["filetype", "input"], $record); my $filetype = $rec{filetype}; --- 274,278 ---- my %rec = %$record; ! checkValidFields($table, [ "filetype","input" ], ["filetype", "input"], $record); my $filetype = $rec{filetype}; *************** *** 278,282 **** # select the filetypes pk for the filetype ! $stm = $dbh->prepare("select ft_pk from filetypes where name= '$filetype'"); $stm->execute(); --- 280,284 ---- # select the filetypes pk for the filetype ! $stm = $dbh->prepare("select ft_pk from filetypes where ft_name= '$filetype'"); $stm->execute(); *************** *** 310,318 **** my $stm = ""; my $record; ! my @records = parse_into_records(@$sp); # select the analysis pk for the analysis ! $stm = $dbh->prepare("select an_pk from analysis where name = '$name'"); $stm->execute(); --- 312,320 ---- my $stm = ""; my $record; ! my $table="sys_parameter_names"; my @records = parse_into_records(@$sp); # select the analysis pk for the analysis ! $stm = $dbh->prepare("select an_pk from analysis where an_name = '$name'"); $stm->execute(); *************** *** 329,333 **** my %rec = %$record; ! checkValidFields([ "name" ], ["name", "default"], $record); my $name = $rec{name}; --- 331,335 ---- my %rec = %$record; ! checkValidFields($table, [ "name" ], ["name", "default"], $record); my $name = $rec{name}; *************** *** 337,345 **** if ($action eq "remove") { ! $stm = "delete from sys_parameter_names where an_fk = '$an_fk'"; } else { ! $stm = "insert into sys_parameter_names (an_fk, sp_name, sp_default) values ('$an_fk', '$name', $default);"; } print "$stm\n" if $debug; --- 339,347 ---- if ($action eq "remove") { ! $stm = "delete from $table where an_fk = '$an_fk'"; } else { ! $stm = "insert into $table (an_fk, sp_name, sp_default) values ('$an_fk', '$name', $default);"; } print "$stm\n" if $debug; *************** *** 357,365 **** my $stm = ""; my $record; my @records = parse_into_records(@$up); # select the analysis pk for the analysis ! $stm = $dbh->prepare("select an_pk from analysis where name = '$name'"); $stm->execute(); --- 359,368 ---- my $stm = ""; my $record; + my $table="user_parameter_names"; my @records = parse_into_records(@$up); # select the analysis pk for the analysis ! $stm = $dbh->prepare("select an_pk from analysis where an_name = '$name'"); $stm->execute(); *************** *** 372,376 **** } - # TODO - handle spaces in keys foreach $record (@records) { --- 375,378 ---- *************** *** 383,395 **** $default = "'$rec{default}'" if exists($rec{default}); ! checkValidFields([ "name", "display_name", "type" ], ["name", "display_name", "type", "default"], $record); if ($action eq "remove") { ! $stm = "delete from user_parameter_names where an_fk = '$an_fk'"; } else { ! $stm = "insert into user_parameter_names (an_fk, up_name, up_display_name, up_type, up_default) values ('$an_fk', '$name', '$display_name', '$type', $default);"; } print "$stm\n" if $debug; --- 385,397 ---- $default = "'$rec{default}'" if exists($rec{default}); ! checkValidFields($table, [ "name", "display_name", "type" ], ["name", "display_name", "type", "default"], $record); if ($action eq "remove") { ! $stm = "delete from $table where an_fk = '$an_fk'"; } else { ! $stm = "insert into $table (an_fk, up_name, up_display_name, up_type, up_default) values ('$an_fk', '$name', '$display_name', '$type', $default);"; } print "$stm\n" if $debug; *************** *** 401,405 **** sub checkValidFields { ! my ($reqref, $fieldsref, $record) = @_; my @req = @$reqref; --- 403,407 ---- sub checkValidFields { ! my ($table, $reqref, $fieldsref, $record) = @_; my @req = @$reqref; *************** *** 409,413 **** foreach my $req (@req) { ! warn "Incorrect configuration. Sys params requires $req field.\n" if (!exists $rec{$req}); } --- 411,415 ---- foreach my $req (@req) { ! warn "Incorrect configuration. $table requires $req field.\n" if (!exists $rec{$req}); } |
From: <tw...@us...> - 2002-11-11 21:42:19
|
Update of /cvsroot/genex/genex-server/site/webtools In directory usw-pr-cvs1:/tmp/cvs-serv32662 Modified Files: Tag: Rel-1_0_1-branch sql_lib.pl analysis_tree_lib.pl sessionlib.pl Log Message: fixed a missing arg, fixed default analysis. Index: sql_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sql_lib.pl,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -C2 -d -r1.1.2.4 -r1.1.2.5 *** sql_lib.pl 11 Nov 2002 20:26:10 -0000 1.1.2.4 --- sql_lib.pl 11 Nov 2002 21:42:15 -0000 1.1.2.5 *************** *** 13,16 **** --- 13,20 ---- my @args = @{$_[2]}; } + if (! defined($dbh)) + { + die "Database handle undefined in sql_lib.pl getq()\n"; + } my $us_fk = get_us_fk($dbh); my $sth; *************** *** 48,51 **** --- 52,59 ---- { $sql = "delete from node where node_pk=?"; + } + elsif ($q_name eq "default_an_pk") + { + $sql = "select min(an_pk) from analysis"; # By convention, insert Quality Control (the default) first } Index: analysis_tree_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/analysis_tree_lib.pl,v retrieving revision 1.1.2.25 retrieving revision 1.1.2.26 diff -C2 -d -r1.1.2.25 -r1.1.2.26 *** analysis_tree_lib.pl 11 Nov 2002 20:26:10 -0000 1.1.2.25 --- analysis_tree_lib.pl 11 Nov 2002 21:42:15 -0000 1.1.2.26 *************** *** 21,30 **** my $dbh = $_[0]; my $sth = getq("insert_tree", $dbh); ! $sth->execute(); my $us_fk = get_us_fk($dbh); my $tree_pk = insert_security($dbh, $us_fk, $us_fk, 0); $sth = getq("insert_tree_node", $dbh); ! $sth->execute($tree_pk,-1,1); # ana_fk one, no parent insert_security($dbh, $us_fk, $us_fk, 0); --- 21,38 ---- my $dbh = $_[0]; my $sth = getq("insert_tree", $dbh); ! $sth->execute() || die "Query insert_tree execute fails. $DBI::errstr\n"; ! ! write_log("dbh in i_t:$dbh"); ! my $us_fk = get_us_fk($dbh); my $tree_pk = insert_security($dbh, $us_fk, $us_fk, 0); + $sth = getq("default_an_pk", $dbh); + $sth->execute() || die "Query default_an_pk execute error. $DBI::errstr\n"; + (my $default_an_pk) = $sth->fetchrow_array(); + $sth->finish; # just in case. + $sth = getq("insert_tree_node", $dbh); ! $sth->execute($tree_pk,-1,$default_an_pk); # the tree pk, no parent, default analysis insert_security($dbh, $us_fk, $us_fk, 0); *************** *** 312,316 **** my $sth = getq("read_tree", $dbh); $sth->execute($tree_pk) || die "Query read_tree execute error: $DBI::errstr\n"; ! while(( my $node_pk, my $name, my $parent_key, my $an_fk) = $sth->fetchrow_array()) { if ($parent_key == -1) --- 320,324 ---- my $sth = getq("read_tree", $dbh); $sth->execute($tree_pk) || die "Query read_tree execute error: $DBI::errstr\n"; ! while(( my $node_pk, my $an_name, my $parent_key, my $an_fk) = $sth->fetchrow_array()) { if ($parent_key == -1) *************** *** 318,326 **** $tree{root} = $node_pk; } ! push(@{$tree{$node_pk}}, $name); push(@{$tree{$node_pk}}, $parent_key); push(@{$tree{$node_pk}}, $an_fk); push(@{$tree{$node_pk}}, $tree_pk); ! # write_log("pk:$node_pk n:$name p:$parent_key a:$an_fk t:$tree_pk"); } return $tree{root}; --- 326,334 ---- $tree{root} = $node_pk; } ! push(@{$tree{$node_pk}}, $an_name); push(@{$tree{$node_pk}}, $parent_key); push(@{$tree{$node_pk}}, $an_fk); push(@{$tree{$node_pk}}, $tree_pk); ! write_log("pk:$node_pk n:$an_name p:$parent_key a:$an_fk t:$tree_pk"); } return $tree{root}; Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** sessionlib.pl 11 Nov 2002 20:26:10 -0000 1.1.2.3 --- sessionlib.pl 11 Nov 2002 21:42:15 -0000 1.1.2.4 *************** *** 1102,1106 **** --- 1102,1116 ---- { my $dbh = $_[0]; + + write_log("dbh in guf:$dbh"); + + my $login = $ENV{"REMOTE_USER"}; + + if (!defined($dbh)) + { + write_log("dbh undefined in get_us_fk"); + exit(); + } my $sql = "select us_pk from usersec where login='$login'"; |
Update of /cvsroot/genex/genex-server/site/webtools In directory usw-pr-cvs1:/tmp/cvs-serv6033 Modified Files: Tag: Rel-1_0_1-branch sql_lib.pl sessionlib.pl files_refresh.pl files.pl files.html index.html analysis_tree_lib.pl Log Message: tom: code changes to match schema field name changes. Also small adjustments to ATree drawing code. Index: sql_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sql_lib.pl,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** sql_lib.pl 8 Nov 2002 21:53:42 -0000 1.1.2.3 --- sql_lib.pl 11 Nov 2002 20:26:10 -0000 1.1.2.4 *************** *** 23,31 **** { ($fclause, $wclause) = write_where_clause("tree", "tree_pk", $us_fk ); ! $sql = "select name,tree_pk from tree,$fclause where $wclause order by name"; } elsif ($q_name eq "insert_tree") { ! $sql = "insert into tree (name) values ('Tree')"; } elsif ($q_name eq "insert_tree_node") --- 23,31 ---- { ($fclause, $wclause) = write_where_clause("tree", "tree_pk", $us_fk ); ! $sql = "select tree_name,tree_pk from tree,$fclause where $wclause order by tree_name"; } elsif ($q_name eq "insert_tree") { ! $sql = "insert into tree (tree_name) values ('Tree')"; } elsif ($q_name eq "insert_tree_node") *************** *** 35,39 **** elsif ($q_name eq "read_tree") { ! $sql = "select node_pk, analysis.name, parent_key, an_fk from node, analysis where tree_fk=? and an_fk=an_pk"; } elsif ($q_name eq "update_tree_node") --- 35,39 ---- elsif ($q_name eq "read_tree") { ! $sql = "select node_pk, an_name, parent_key, an_fk from node, analysis where tree_fk=? and an_fk=an_pk order by node_pk"; } elsif ($q_name eq "update_tree_node") *************** *** 43,47 **** elsif ($q_name eq "select_analysis") { ! $sql = "select name,an_pk from analysis order by name"; } elsif ($q_name eq "delete_tree_node") --- 43,47 ---- elsif ($q_name eq "select_analysis") { ! $sql = "select an_name,an_pk from analysis order by an_name"; } elsif ($q_name eq "delete_tree_node") Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** sessionlib.pl 7 Nov 2002 17:43:35 -0000 1.1.2.2 --- sessionlib.pl 11 Nov 2002 20:26:10 -0000 1.1.2.3 *************** *** 609,613 **** my $gs_fk = $_[2]; my $file_name = $_[3]; ! my $comments = $_[4]; my $sql = "select fi_pk from file_info where file_name='$file_name'"; --- 609,613 ---- my $gs_fk = $_[2]; my $file_name = $_[3]; ! my $fi_comments = $_[4]; my $sql = "select fi_pk from file_info where file_name='$file_name'"; *************** *** 634,638 **** (my $fi_pk) = $sth->fetchrow_array(); ! $sql = "update file_info set comments=trim('$comments'), checksum=? where fi_pk=$fi_pk"; if (! ($sth = $dbh->prepare($sql))) --- 634,638 ---- (my $fi_pk) = $sth->fetchrow_array(); ! $sql = "update file_info set fi_comments=trim('$fi_comments'), fi_checksum=? where fi_pk=$fi_pk"; if (! ($sth = $dbh->prepare($sql))) *************** *** 650,656 **** else { ! $sql = "insert into file_info (file_name, comments, checksum) values (trim(?), trim(?), trim(?))"; $sth = $dbh->prepare($sql); ! $sth->execute($file_name, $comments, $md5); insert_security($dbh, $us_fk, $gs_fk, 0); } --- 650,656 ---- else { ! $sql = "insert into file_info (file_name, fi_comments, fi_checksum) values (trim(?), trim(?), trim(?))"; $sth = $dbh->prepare($sql); ! $sth->execute($file_name, $fi_comments, $md5); insert_security($dbh, $us_fk, $gs_fk, 0); } Index: files_refresh.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/files_refresh.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** files_refresh.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- files_refresh.pl 11 Nov 2002 20:26:10 -0000 1.1.2.2 *************** *** 22,26 **** # (my $fclause, my $wclause) = write_where_clause("file_info", "fi_pk", $us_fk); ! my $sql = "select fi_pk,file_name, checksum, comments from file_info, $fclause where $wclause"; my $quiet_compile = $DBI::errstr; ($sth = $dbh->prepare($sql)) || die "$sql\n$DBI::errstr\n"; --- 22,26 ---- # (my $fclause, my $wclause) = write_where_clause("file_info", "fi_pk", $us_fk); ! my $sql = "select fi_pk,file_name, fi_checksum, fi_comments from file_info, $fclause where $wclause"; my $quiet_compile = $DBI::errstr; ($sth = $dbh->prepare($sql)) || die "$sql\n$DBI::errstr\n"; *************** *** 30,34 **** $sh{http_host} = $ENV{HTTP_HOST}; my %pk2name; ! while(($sh{fi_pk}, $sh{file_name}, $sh{checksum}, $sh{comments}) = $sth->fetchrow_array()) { $pk2name{$sh{fi_pk}} = $sh{file_name}; --- 30,34 ---- $sh{http_host} = $ENV{HTTP_HOST}; my %pk2name; ! while(($sh{fi_pk}, $sh{file_name}, $sh{fi_checksum}, $sh{fi_comments}) = $sth->fetchrow_array()) { $pk2name{$sh{fi_pk}} = $sh{file_name}; Index: files.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/files.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** files.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- files.pl 11 Nov 2002 20:26:10 -0000 1.1.2.2 *************** *** 28,32 **** # (my $fclause, my $wclause) = read_where_clause("file_info", "fi_pk", $us_fk); ! my $sql = "select fi_pk,file_name, checksum, comments from file_info, $fclause where $wclause"; ($sth = $dbh->prepare($sql)) || die "$sql\n$DBI::errstr\n"; $sth->execute() || die "$sql\n$DBI::errstr\n"; --- 28,32 ---- # (my $fclause, my $wclause) = read_where_clause("file_info", "fi_pk", $us_fk); ! my $sql = "select fi_pk,file_name, fi_checksum, fi_comments from file_info, $fclause where $wclause"; ($sth = $dbh->prepare($sql)) || die "$sql\n$DBI::errstr\n"; $sth->execute() || die "$sql\n$DBI::errstr\n"; *************** *** 35,39 **** my %sh; $sh{http_host} = $ENV{HTTP_HOST}; ! while(($sh{fi_pk}, $sh{file_name}, $sh{checksum}, $sh{comments}) = $sth->fetchrow_array()) { # escape USER_DATA_DIR which has / chars --- 35,39 ---- my %sh; $sh{http_host} = $ENV{HTTP_HOST}; ! while(($sh{fi_pk}, $sh{file_name}, $sh{fi_checksum}, $sh{fi_comments}) = $sth->fetchrow_array()) { # escape USER_DATA_DIR which has / chars *************** *** 53,57 **** my $dir_stem = "$opts{USER_DATA_DIR}/$ENV{REMOTE_USER}"; $sh{file_name} =~ s/\Q$dir_stem\E//; ! $sh{href} = "http://$ENV{SERVER_NAME}/webtools/getfile.pl?key=$sh{checksum}"; ($sh{us_fk}, $sh{login}) = get_owner($dbh, $sh{fi_pk}); ($sh{us_fk}, $sh{group_name}) = get_group($dbh, $sh{fi_pk}); --- 53,57 ---- my $dir_stem = "$opts{USER_DATA_DIR}/$ENV{REMOTE_USER}"; $sh{file_name} =~ s/\Q$dir_stem\E//; ! $sh{href} = "http://$ENV{SERVER_NAME}/webtools/getfile.pl?key=$sh{fi_checksum}"; ($sh{us_fk}, $sh{login}) = get_owner($dbh, $sh{fi_pk}); ($sh{us_fk}, $sh{group_name}) = get_group($dbh, $sh{fi_pk}); Index: files.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/files.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** files.html 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- files.html 11 Nov 2002 20:26:10 -0000 1.1.2.2 *************** *** 44,48 **** </td> <td valign=top> ! {comments} </td> <td valign=top> --- 44,48 ---- </td> <td valign=top> ! {fi_comments} </td> <td valign=top> Index: index.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/index.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** index.html 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- index.html 11 Nov 2002 20:26:10 -0000 1.1.2.2 *************** *** 5,47 **** <br><br> Return to <a href="../">local Genex Home Page</a> ! <br><br clear=all><br> <table width="600" border="0" cellpadding="3" cellspacing="0"> ! <tr><td bgcolor="#88AA88"> ! <table width="100%" border="0" cellpadding="3" cellspacing="0"> ! <tr><td bgcolor="#FFFFFF"> ! <a href="files.pl">View my files</a><br> ! <a href="choose_hybs.pl">Run analysis: Quality Control, Stat Analysis, Westfall & Young</a><br> ! View my existing data.<br><br> ! Run analyses and view or download the results files from analyses. These files often include intermediate data files, as well as the final output. ! </td></tr> ! </table> ! </td></tr> </table> <br> - <table width="600" border="0" cellpadding="3" cellspacing="0"> ! <tr><td bgcolor="#88AA88"> ! <table width="100%" border="0" cellpadding="3" cellspacing="0"> ! <tr><td bgcolor="#FFFFFF"> ! <a href="insert_order.pl">Create a new order</a><br> ! <a href="choose_order.pl">Update an existing order</a><br> ! <a href="view_orders.pl">View all orders</a><br><br> ! Build an order. Describe the samples that you'll deliver to the chip lab, and which chips you want each sample hybridized to. ! </td></tr> ! </table> ! </td></tr> </table> <br> - <table width="600" border="0" cellpadding="3" cellspacing="0"> <tr><td bgcolor="#88AA88"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> ! <tr><td bgcolor="#FFFFFF"> ! <a href="insert_study.pl">Create new study</a><br> ! <a href="choose_study.pl">Update an existing study</a><br><br> ! Use these links to create a study and then to add or modify experimental conditions of that study. ! <br><br> ! In other words, this is how GeneX describes the protocols that define a single research project. ! </td></tr> </table> </td></tr> --- 5,62 ---- <br><br> Return to <a href="../">local Genex Home Page</a> ! <br><br clear=all> <table width="600" border="0" cellpadding="3" cellspacing="0"> ! <tr> ! <td bgcolor="#88AA88"> ! <table width="100%" border="0" cellpadding="3" cellspacing="0"> ! <tr> ! <td bgcolor="#FFFFFF"> <a href="insert_study.pl">Create new study</a><br> ! <a href="choose_study.pl">Update an existing study</a><br> ! <br> ! Use these links to create a study and then to add or modify experimental ! conditions of that study. <br> ! In other words, this is how GeneX describes the group of protocols ! that define a single research project. </td> ! </tr> ! </table> ! </td> ! </tr> </table> <br> <table width="600" border="0" cellpadding="3" cellspacing="0"> ! <tr> ! <td bgcolor="#88AA88"> ! <table width="100%" border="0" cellpadding="3" cellspacing="0"> ! <tr> ! <td bgcolor="#FFFFFF"> <a href="insert_order.pl">Create a new order</a><br> ! <a href="choose_order.pl">Update an existing order</a><br> ! <a href="view_orders.pl">View all orders</a><br> ! <br> ! Build an order. Describe the samples that you'll deliver to the chip ! lab, and which chips you want each sample hybridized to. </td> ! </tr> ! </table> ! </td> ! </tr> </table> <br> <table width="600" border="0" cellpadding="3" cellspacing="0"> <tr><td bgcolor="#88AA88"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> ! <tr> ! <td bgcolor="#FFFFFF"> ! <p><a href="files.pl">View my files</a><br> ! <a href="choose_hybs.pl">Run analysis: Quality Control, Stat Analysis, ! Westfall & Young</a><br> ! View my existing data.<br> ! <a href="get_data1.pl">Extract data into a file</a><br> ! <a href="choose_tree.pl">Update an existing Analysis Tree<br> ! </a><a href="insert_tree.pl">Create a new Analysis Tree</a><br> ! <br> ! Run analyses and view or download the results files from analyses. ! These files often include intermediate data files, as well as the ! final output. Raw data files from the Microarray Center are also ! available for viewing/download.</p> ! </td></tr> </table> </td></tr> *************** *** 56,61 **** <a href="groups.pl">Manage membership of my groups</a><br> <a href="create_group.pl">Create a new group</a><br><br> ! ! </td></tr> </table> </td></tr> --- 71,77 ---- <a href="groups.pl">Manage membership of my groups</a><br> <a href="create_group.pl">Create a new group</a><br><br> ! View or update your personal information in GeneX. Also create and ! manage your groups and group membership.</td> ! </tr> </table> </td></tr> Index: analysis_tree_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/analysis_tree_lib.pl,v retrieving revision 1.1.2.24 retrieving revision 1.1.2.25 diff -C2 -d -r1.1.2.24 -r1.1.2.25 *** analysis_tree_lib.pl 8 Nov 2002 21:53:42 -0000 1.1.2.24 --- analysis_tree_lib.pl 11 Nov 2002 20:26:10 -0000 1.1.2.25 *************** *** 395,406 **** <input type=\"hidden\" name=\"name_$node\" value=\"$tree{$node}[0]\"> <input type=\"hidden\" name=\"parent_$node\" value=\"$parent{$node}\">"; if ($node != $tree{root}) # UI prevents root deletion, and so does code in edit_atree2.pl { ! # $html .="<input type=\"submit\" name=\"delete_$node\" value=\"Delete\">"; ! $html .="<input type=\"image\" border=\"0\" name=\"delete_$node\" src=\"../graphics/trash.gif\" width=\"25\" height=\"25\">\n"; ! } ! $html .= "($node)<input type=\"image\" border=\"0\" name=\"edit_$node\" src=\"../graphics/pencil.gif\" width=\"25\" height=\"25\"><br> ! <div align=\"center\"><font size=\"-1\">$tree{$node}[0]<br><input type=\"radio\" name=\"node_number\" value=\"$node\">\n"; $html .= "</font></div></td>\n"; } --- 395,405 ---- <input type=\"hidden\" name=\"name_$node\" value=\"$tree{$node}[0]\"> <input type=\"hidden\" name=\"parent_$node\" value=\"$parent{$node}\">"; + my $del_string = ""; if ($node != $tree{root}) # UI prevents root deletion, and so does code in edit_atree2.pl { ! $del_string ="<input type=\"image\" border=\"0\" name=\"delete_$node\" src=\"../graphics/trash.gif\" width=\"25\" height=\"25\">\n"; } ! $html .= "<table border=\"0\" width=\"100%\"><tr><td width=\"50%\"><div align=\"left\">$del_string</div></td><td width\"50%\"><div align=\"right\"><input type=\"image\" border=\"0\" name=\"edit_$node\" src=\"../graphics/pencil.gif\" width=\"25\" height=\"25\"></div></td></tr></table>\n"; ! $html .= "<div align=\"center\"><font size=\"-1\">$tree{$node}[0]<br>($node)<input type=\"radio\" name=\"node_number\" value=\"$node\">\n"; $html .= "</font></div></td>\n"; } |
From: <tw...@us...> - 2002-11-11 20:20:56
|
Update of /cvsroot/genex/genex-server In directory usw-pr-cvs1:/tmp/cvs-serv4720 Modified Files: Tag: Rel-1_0_1-branch genex_schema.sql Log Message: test Index: genex_schema.sql =================================================================== RCS file: /cvsroot/genex/genex-server/genex_schema.sql,v retrieving revision 1.3.2.16 retrieving revision 1.3.2.17 diff -C2 -d -r1.3.2.16 -r1.3.2.17 *** genex_schema.sql 11 Nov 2002 20:08:36 -0000 1.3.2.16 --- genex_schema.sql 11 Nov 2002 20:20:51 -0000 1.3.2.17 *************** *** 2221,2224 **** --- 2221,2225 ---- -- + CREATE UNIQUE INDEX "am_spots_pkey" on "am_spots_mas5" using btree ( "ams_pk" "int4_ops" ); |
From: <tw...@us...> - 2002-11-11 20:08:45
|
Update of /cvsroot/genex/genex-server In directory usw-pr-cvs1:/tmp/cvs-serv450a Modified Files: Tag: Rel-1_0_1-branch genex_schema.sql Log Message: changes made to assure unique fields through analysis tables and am_spots tables. Index: genex_schema.sql =================================================================== RCS file: /cvsroot/genex/genex-server/genex_schema.sql,v retrieving revision 1.3.2.15 retrieving revision 1.3.2.16 diff -C2 -d -r1.3.2.15 -r1.3.2.16 *** genex_schema.sql 7 Nov 2002 18:32:33 -0000 1.3.2.15 --- genex_schema.sql 11 Nov 2002 20:08:36 -0000 1.3.2.16 *************** *** 35,39 **** -- ! CREATE SEQUENCE "am_spots_mas5_ams_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; -- --- 35,39 ---- -- ! CREATE SEQUENCE "am_spots_mas5_ams_mas5_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; -- *************** *** 42,65 **** -- ! REVOKE ALL on "am_spots_mas5_ams_pk_seq" from PUBLIC; ! GRANT ALL on "am_spots_mas5_ams_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_mas5_ams_pk_seq" to "readonly"; -- -- ! CREATE SEQUENCE "am_spots_mas4_ams_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; -- ! REVOKE ALL on "am_spots_mas4_ams_pk_seq" from PUBLIC; ! GRANT ALL on "am_spots_mas4_ams_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_mas4_ams_pk_seq" to "readonly"; ! CREATE SEQUENCE "am_spots_dchip_ams_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; ! REVOKE ALL on "am_spots_dchip_ams_pk_seq" from PUBLIC; ! GRANT ALL on "am_spots_dchip_ams_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_dchip_ams_pk_seq" to "readonly"; --- 42,65 ---- -- ! REVOKE ALL on "am_spots_mas5_ams_mas5_pk_seq" from PUBLIC; ! GRANT ALL on "am_spots_mas5_ams_mas5_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_mas5_ams_mas5a_pk_seq" to "readonly"; -- -- ! CREATE SEQUENCE "am_spots_mas4_ams_mas4_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; -- ! REVOKE ALL on "am_spots_mas4_ams_mas4_pk_seq" from PUBLIC; ! GRANT ALL on "am_spots_mas4_ams_mas4_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_mas4_ams_mas4_pk_seq" to "readonly"; ! CREATE SEQUENCE "am_spots_dchip_ams_dchip_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; ! REVOKE ALL on "am_spots_dchip_ams_dchip_pk_seq" from PUBLIC; ! GRANT ALL on "am_spots_dchip_ams_dchip_pk_seq" to "genex"; ! GRANT SELECT on "am_spots_dchip_ams_dchip_pk_seq" to "readonly"; *************** *** 547,553 **** CREATE TABLE "am_spots_mas5" ( ! "ams_pk" integer DEFAULT nextval('am_spots_mas5_ams_pk_seq'::text) NOT NULL, "am_fk" integer NOT NULL, ! "usf_fk" integer, "detection" double precision, "detectionp" double precision, --- 547,553 ---- CREATE TABLE "am_spots_mas5" ( ! "ams_mas5_pk" integer DEFAULT nextval('am_spots_mas5_ams_mas5_pk_seq'::text) NOT NULL, "am_fk" integer NOT NULL, ! "als_fk" integer, "detection" double precision, "detectionp" double precision, *************** *** 569,575 **** CREATE TABLE "am_spots_mas4" ( ! "ams_pk" integer DEFAULT nextval('am_spots_mas4_ams_pk_seq'::text) NOT NULL, "am_fk" integer NOT NULL, ! "usf_fk" integer, "positive" double precision, "negative" double precision, --- 569,575 ---- CREATE TABLE "am_spots_mas4" ( ! "ams_mas4_pk" integer DEFAULT nextval('am_spots_mas4_ams_mas4_pk_seq'::text) NOT NULL, "am_fk" integer NOT NULL, ! "als_fk" integer, "positive" double precision, "negative" double precision, *************** *** 589,595 **** CREATE TABLE "am_spots_dchip" ( ! "ams_pk" integer DEFAULT nextval('am_spots_dchip_ams_pk_seq'::text) NOT NULL, "am_fk" integer NOT NULL, ! "usf_fk" integer, "signal" double precision ) without OIDs; --- 589,595 ---- CREATE TABLE "am_spots_dchip" ( ! "ams_dchip_pk" integer DEFAULT nextval('am_spots_dchip_ams_dchip_pk_seq'::text) NOT NULL, "am_fk" integer NOT NULL, ! "als_fk" integer, "signal" double precision ) without OIDs; *************** *** 790,794 **** "smp_fk" integer NOT NULL, "prt_fk" integer NOT NULL, ! "comment" text ) without OIDs; --- 790,794 ---- "smp_fk" integer NOT NULL, "prt_fk" integer NOT NULL, ! "smp_comments" text ) without OIDs; *************** *** 1138,1142 **** "ncbi_taxonomy_acc" text, "relevant_urls" text, ! "comments" text ) without OIDs; --- 1138,1142 ---- "ncbi_taxonomy_acc" text, "relevant_urls" text, ! "spc_ft_comments" text ) without OIDs; *************** *** 1157,1161 **** "study_name" character varying(128) NOT NULL, "start_date" timestamp, ! "comments" text ) without OIDs; --- 1157,1161 ---- "study_name" character varying(128) NOT NULL, "start_date" timestamp, ! "sty_comments" text ) without OIDs; *************** *** 1267,1271 **** "submission_date" timestamp with time zone, "equation" text, ! "comments" text, "equation_type" character varying(128), "smp_fk" integer, --- 1267,1271 ---- "submission_date" timestamp with time zone, "equation" text, ! "am_comments" text, "equation_type" character varying(128), "smp_fk" integer, *************** *** 2189,2196 **** "file_name" character varying(128) NOT NULL, "timestamp" character varying(128), - "owner" character varying(128), "use_as_input" boolean, ! "comments" text, ! "checksum" character varying(128) ) without OIDs; --- 2189,2195 ---- "file_name" character varying(128) NOT NULL, "timestamp" character varying(128), "use_as_input" boolean, ! "fi_comments" text, ! "fi_checksum" character varying(128) ) without OIDs; *************** *** 2964,2968 **** -- UPDATE pg_class SET reltriggers = (SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) WHERE relname = 'species'; ! --ANALYSIS TABLES --GeneX analysis requirements call for an additional 5 tables in the database. --- 2963,2967 ---- -- UPDATE pg_class SET reltriggers = (SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) WHERE relname = 'species'; ! --ANALYSIS TABLES - added by Jodi November 2002 --GeneX analysis requirements call for an additional 5 tables in the database. *************** *** 3010,3018 **** ! CREATE SEQUENCE "extension_ext_pk" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; ! REVOKE ALL on "extension_ext_pk" from PUBLIC; ! GRANT ALL on "extension_ext_pk" to "genex"; ! GRANT SELECT on "extension_ext_pk" to "readonly"; --- 3009,3017 ---- ! CREATE SEQUENCE "extension_ext_pk_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; ! REVOKE ALL on "extension_ext_pk_seq" from PUBLIC; ! GRANT ALL on "extension_ext_pk_seq" to "genex"; ! GRANT SELECT on "extension_ext_pk_seq" to "readonly"; *************** *** 3022,3026 **** CREATE TABLE "analysis" ( "an_pk" integer DEFAULT nextval('analysis_an_pk_seq'::text) NOT NULL, ! "name" character varying(128), "cmdstr" text, "version" character varying(128) --- 3021,3025 ---- CREATE TABLE "analysis" ( "an_pk" integer DEFAULT nextval('analysis_an_pk_seq'::text) NOT NULL, ! "an_name" character varying(128), "cmdstr" text, "version" character varying(128) *************** *** 3083,3088 **** CREATE TABLE "filetypes" ( "ft_pk" integer DEFAULT nextval('filetypes_ft_pk_seq'::text) NOT NULL, ! "name" character varying(128), ! "comment" text ) without OIDs; --- 3082,3088 ---- CREATE TABLE "filetypes" ( "ft_pk" integer DEFAULT nextval('filetypes_ft_pk_seq'::text) NOT NULL, ! "ft_name" character varying(128), ! "arg_name" character varying(20), ! "ft_comments" text ) without OIDs; *************** *** 3109,3114 **** CREATE TABLE "tree" ( "tree_pk" integer DEFAULT nextval('pk_seq'::text) NOT NULL, ! "name" character varying(128), ! "owner" character varying(128), "fi_input_fk" integer, "fi_log_fk" integer --- 3109,3113 ---- CREATE TABLE "tree" ( "tree_pk" integer DEFAULT nextval('pk_seq'::text) NOT NULL, ! "tree_name" character varying(128), "fi_input_fk" integer, "fi_log_fk" integer |
From: <ki...@us...> - 2002-11-10 02:27:57
|
Update of /cvsroot/genex/genex-www/content In directory usw-pr-cvs1:/tmp/cvs-serv7554 Modified Files: menu.ssi Log Message: status update page link added Index: menu.ssi =================================================================== RCS file: /cvsroot/genex/genex-www/content/menu.ssi,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** menu.ssi 21 Feb 2002 04:02:39 -0000 1.12 --- menu.ssi 10 Nov 2002 02:27:54 -0000 1.13 *************** *** 35,38 **** --- 35,40 ---- Join the GeneX mailing list </A><br> + - <A href="http://genex.sourceforge.net/status/"> + Weekly Status Updates</a><br> - <A href="Timelines.shtml"> Review the GeneX development timeline: 2002 |
From: <ki...@us...> - 2002-11-10 02:22:29
|
Update of /cvsroot/genex/genex-www/content In directory usw-pr-cvs1:/tmp/cvs-serv4976 Modified Files: main.ssi Log Message: status update page news added Index: main.ssi =================================================================== RCS file: /cvsroot/genex/genex-www/content/main.ssi,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** main.ssi 20 Oct 2002 22:18:52 -0000 1.8 --- main.ssi 10 Nov 2002 02:22:24 -0000 1.9 *************** *** 7,10 **** --- 7,18 ---- <tr bgcolor="#FFD78F"> <td> + <p> + <u>Nov 8th, 2002</u> - Weekly Status Updates Web Page<br> + Many of the developers working on Genex have agreed to + post weekly updates on the genex-dev mainling list. + These updates will be taken from the list and posted + at <a href="http://genex.sourceforge.net/status/"> + http://genex.sourceforge.net/status/</a> Enjoy! + </p> <p> <u>Oct 20, 2002</u> - First Beta release of GeneX 2.0.0 <br> |
From: <ki...@us...> - 2002-11-09 05:48:25
|
Update of /cvsroot/genex/genex-www/status/2002/nov In directory usw-pr-cvs1:/tmp/cvs-serv25594 Added Files: status_main.ssi Log Message: Nov 2002 status updates --- NEW FILE: status_main.ssi --- <!--Main content --> <table border="2" bgcolor="#BFD8D8" width="100%" cellpadding="15" cellspacing="5"> <tr valign="top" bgcolor="#D8E4F7"> <th><big>November 7th, 2002</big></th> </tr> <tr bgcolor="#D8E4F7"> <td> <p> <b><u>Caltech Update - Diane Trout</u></b><br> </p> <p> <b>Current accomplishments:</b><br> * Built a number of packages to help install genex<br> * Helped brandon with some of the bugs he's run into with installing<br> genex.<br> * A whole lot of meetings<br> </p> <p> <b>Next week:</b><br> * Work on conneting novosoft xmi reader to pymerase (high priority) <br> (for both an internal project as well as Python-Mage)<br> * Fix issues that brandon found in pymerase (high)<br> * Work on connecting pymerase to GeneX's new security model (mid)<br> * Build debs for Bio::Mage & GeneX (low)<br> </p> <p> <b>Problems:</b><br> * Haven't had time to work on debs or preping a download site to be<br> hosted on sourceforge.<br> </p> <hr> <p> <b><u>Caltech Update - Brandon King</u></b> </p> <p> <b>Summery:</b><br> * Installed GeneX 2.x with help from Diane and Jason<br> * Started uploading QuantArray test data to GeneX 2.x<br> * No form to upload ExperimentSets (looks like now fixed), used SQL as shorterm solution<br> * Successfully generated and uploaded ArrayDesigns<br> * Tested uploading of existing FeatureExtractionSoftware, detected entry and didn't upload. =o)<br> * Tried to upload QuantArray expression data, ran into bugs, submited bug reports<br> * Worked on testing and updating pymerase to help prerpare for GeneX 2.x and MAGE support.<br> </p> <p> <b>Next Week:</b><br> * Finish Uploading QuantArray expression data<br> * Create GenePix FeatureExtractionSoftware XML file<br> * Create ArrayDesign from GenePix data<br> * Upload GenePix expression data<br> * Help Diane update Pymerase<br> </p> <p> <b>Problems:</b><br> * Usual bugs found in development projects.<br> </p> <p> <b>Future:</b><br> * Look into ways of helping out with GeneX project more effeciently<br> </p> <p> <b>New or Changing Priorities:</b><br> * No changes, yet.<br> </p> <p> <b>Random Ideas:</b><br> * Maybe using a format similar to this for weekly updates, where Summery, Next Week, and Problems are most important to include.<br> * Go to lunch =o) <br> </p> <hr> <p> <b><u>UCI Update - Harry Mangalam</u></b> </p> <p> ...And thanks to Brandon ans Diane for the biff to the butt for getting this started. </p> <p> Over the last 2 months, I've been mostly working on analysis add-ons and tweaks to GeneX and related gene expression paths, with the emphasis on OpenDX: </p> <p> Open Data Explorer (DX) is an advanced visualization system developed by IBM over the last 15 years. It was initially a commercial product aimed at high end visualization markets, using advance single and multi-CPU Unix workstations. In 1999, as part of their Deep Computing Initiative, IBM released the source code to DX as Open Source. Over the years since, it has been ported to Linux and Windows, and continues to improve. It is particularly notable as complex visualizations can be programmed visually by means of 'drag and dropping' icons representing data transformations onto a canvas and 'wiring' them together by means of connecting input and output tabs together with mouse clicks. One problem with DX is that while it is an exceptional visualization environment, it was developed prior to the current emphasis on accessing data from relational databases, relying on the large data file formats that were (and still are) standard in these fields - primarily HDF and netCDF. This is a problem particularly for the gene expression field, where data is progressively stored in relational databases to support complex queries. [see <a href="http://www.opendx.org">http://www.opendx.org</a>] </p> <p> Mostly this has been in pursuit of a Perl-OpenDX link so that a module can be added to a visual DX net allowing arbitrary Perl code to be run on the input. There are various problems - DX prefers to operate on particular types of data fields, not the simple string input that Perl favors, but there are many possibilitiess, high among them using Perl's DBI to suck data from RDBs and format it for DX to do automated analysis and visualization on. </p> <p> Status: I've gotten some DX-Perl modules built, but am still a ways away from a solid generic module. </p> <p> A close second priority is the integration of the R statistical language in the same way - compile it as a shared lib and have it communicate to DX via sockets in the same way that I have Perl doing. R is actually a better fit as it has an idea about data objects and already has support for many of the interconversions of data types that DX supports. </p> <p> A logical 3rd candidate would be Python, as it theoretically integrates more easily with C apps than Perl and there is already a Python project for interacting with DX (tho it seems to be for controlling DX from Python than rolling Python into DX.) </p> <p> The other project is the updating and converting to commandline scripts those cgi analysis scripts that were included in the GeneX 1.0 release. These include the CyberT significance testing, the Eisen/Sherlock clustering code, (now incorporating Swaine Lin Chen's slcview heatmap generation), and Karen's Rcluster codes. </p> <p> These updates should be making their way back into the CVS tree very soon. Currently they are designed to work with a tree of QuantArray-formatted replicates, soing significance testing on all of the subgroups and then a summary significance test on all the subgroups (this last summary test is specific to the experiment, so it may not be appro for all expt'al designs). </p> <p> I'm also just about finished a larger descriptive page describing the software in more detail and will post the location as soon as it's ready, probably next week. </p> <p> My last noise is a suggestion of starting to put together ideas for making an external GUI app that does nothing but query the GeneX DB and makes the output available as: - tab-delimited spreadsheet-like files - MAGE-ML - N-dimensional file such as netCDF/HDF/XDF - maybe a few others </p> <p> My suggestion would be to use Python and Qt so that it runs cross-platform, using either the Qt designer (or BlackAdder if it EVER sees the light of day). The Python bindings seem to be more stable and coherent than for Perl. </p> <hr> <p> <b><u>UVa Update - Tom Laudeman</u></b> </p> <p> Following Harry's good example, here's what we're up to: </p> <p> We're showing GeneX to end users this morning. We gave it to the Microarray Center people last week, but they've had a lull in orders. </p> <p> Jodi/Teela has finished the Analysis Tree schema. I think it has 8 tables. This schema allows for the linking analyses together, and for the analysis module plugins. </p> <p> Teela has been working on the analysis tree backend. </p> <p> I've got the trees drawing correctly, nodes delete, add, and rename. Trees render correctly no matter how complex. I created this before the db was ready, so I've been integrating with the Analysis Tree schema. </p> <p> The tree drawing is way cool. We can set up accounts on reed6.med for people who want to see it. </p> <hr> <p> <b><u>Open Informatics Update - Jason Stewart</u></b> </p> <p> Here's the status for me and my sub-contractors, Mark Wilkinson, and Hyojoo Kang. </p> <p> <b>Mark:</b><br> Added sysadmin tools for doing users/group mainenance and created Mason front ends for them. </p> <p> <b>Hyojoo:</b><br> Created a Java GUI for creating QT Dimensions that uses the MAGE-Java API and thus can export MAGE-ML. The MAGE-ML QT Dimension is needed to configure the data loader. </p> <p> <b>Jason:</b><br> </p> <p> Planning<br> ========<br> I've been getting ready to switch to Postgres7.3 </p> <p> Service<br> =======<br> Helped Brandon get Genex-2.0a1 running at Caltech </p> <p> Genex-2<br> ===== </p> <p> New Tools<br> --<br> * create user tools for adding Group's and ExperimentSet's and created a mason front end for them. </p> <p> * Install - now uses a MANIFEST file. This file documents all local files to be installed and where they will be installed. This is a substitutable file (created from MANIFEST.in), so it is possible to use the Config.pm values. </p> <p> Schema changes<br> --<br> * ExperimentSet - removed creation_date column. This information can be found by using the Audit trail. </p> <p> Modifications to Perl API<br> --<br> * XMLUtils.pm - changed the internals of xml2sql() to use the new SQL writing functions in Connect.pm. Added creation of rules to all security views for INSERT/UPDATE/DELETE. Removed permission granting code to make it more generic. Added support for a single master sequence to be used by all tables. </p> <p> * create_genex_db.pl - modified to handle granting of permissions. </p> <p> Goals for next week<br> ===================<br> Finish rules code - need to fix problem with GroupSec table having ro/rw_groupname fkeys to itself. </p> <p> Ensure that ArrayDesign importer can handle Affy U133 files. </p> <p> Add ability to data loader to import .CEL data and MAS5 data. </p> </td> </tr> </table> <!-- End of Content --> |
From: <ki...@us...> - 2002-11-09 05:47:54
|
Update of /cvsroot/genex/genex-www/status/2002/nov In directory usw-pr-cvs1:/tmp/cvs-serv25510 Added Files: index.shtml Log Message: Nov 2002 Status Updates --- NEW FILE: index.shtml --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <HTML> <HEAD> <TITLE>GeneX @ SourceForge</TITLE></HEAD> <BODY bgcolor="white"> <center> <table border="1" cellpadding="0" cellspacing="0" width="800"> <tr> <td bgcolor="#FFFFBB" colspan="2"> <img src="http://genex.sourceforge.net/graphics/genex_banner.png" alt="genex banner"> </td> </tr> <tr> <!-- start Nav Bar table --> <td width="25%" valign="top"> <!--#include virtual="/status/status_menu.ssi"--> </td> <td align="LEFT" VALIGN="top"> <!--#include virtual="status_main.ssi"--> </td> </tr> <tr bgcolor="#8FB9AA"> <th colspan="2"> <!-- The Page Footer goes here --> <!--#include virtual="/content/footer.ssi"--> </th> </tr> </table> </center> </BODY> </HTML> |
From: <ki...@us...> - 2002-11-09 05:46:09
|
Update of /cvsroot/genex/genex-www/status In directory usw-pr-cvs1:/tmp/cvs-serv25324 Modified Files: status_main.ssi Log Message: template for future months Index: status_main.ssi =================================================================== RCS file: /cvsroot/genex/genex-www/status/status_main.ssi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** status_main.ssi 8 Nov 2002 23:01:42 -0000 1.1 --- status_main.ssi 9 Nov 2002 05:46:06 -0000 1.2 *************** *** 11,37 **** </p> - <p> - <b>Current accomplishments:</b><br> - * Built a number of packages to help install genex<br> - * Helped brandon with some of the bugs he's run into with installing<br> - genex.<br> - * A whole lot of meetings<br> - </p> - - <p> - <b>Next week:</b><br> - * Work on conneting novosoft xmi reader to pymerase (high priority) <br> - (for both an internal project as well as Python-Mage)<br> - * Fix issues that brandon found in pymerase (high)<br> - * Work on connecting pymerase to GeneX's new security model (mid)<br> - * Build debs for Bio::Mage & GeneX (low)<br> - </p> - - <p> - <b>Problems:</b><br> - * Haven't had time to work on debs or preping a download site to be<br> - hosted on sourceforge.<br> - </p> - <hr> <p> --- 11,14 ---- *************** *** 39,313 **** </p> - <p> - <b>Summery:</b><br> - * Installed GeneX 2.x with help from Diane and Jason<br> - * Started uploading QuantArray test data to GeneX 2.x<br> - * No form to upload ExperimentSets (looks like now fixed), used SQL as shorterm solution<br> - * Successfully generated and uploaded ArrayDesigns<br> - * Tested uploading of existing FeatureExtractionSoftware, detected entry and didn't upload. =o)<br> - * Tried to upload QuantArray expression data, ran into bugs, submited bug reports<br> - * Worked on testing and updating pymerase to help prerpare for GeneX 2.x and MAGE support.<br> - </p> - - <p> - <b>Next Week:</b><br> - * Finish Uploading QuantArray expression data<br> - * Create GenePix FeatureExtractionSoftware XML file<br> - * Create ArrayDesign from GenePix data<br> - * Upload GenePix expression data<br> - * Help Diane update Pymerase<br> - </p> - - <p> - <b>Problems:</b><br> - * Usual bugs found in development projects.<br> - </p> - - <p> - <b>Future:</b><br> - * Look into ways of helping out with GeneX project more effeciently<br> - </p> - - <p> - <b>New or Changing Priorities:</b><br> - * No changes, yet.<br> - </p> - - <p> - <b>Random Ideas:</b><br> - * Maybe using a format similar to this for weekly updates, where Summery, Next Week, and Problems are most important to include.<br> - * Go to lunch =o) <br> - </p> - <hr> <p> <b><u>UCI Update - Harry Mangalam</u></b> </p> - <p> - ...And thanks to Brandon ans Diane for the biff to the butt for getting - this started. - </p> - - <p> - Over the last 2 months, I've been mostly working on analysis add-ons and - tweaks to GeneX and related gene expression paths, with the emphasis on - OpenDX: - </p> - <p> - Open Data Explorer (DX) is an advanced visualization system - developed by IBM over the last 15 years. It was initially a - commercial product aimed at high end visualization markets, using - advance single and multi-CPU Unix workstations. In 1999, as - part of their Deep Computing Initiative, IBM released the source - code to DX as Open Source. Over the years since, it has been - ported to Linux and Windows, and continues to improve. It is - particularly notable as complex visualizations can be programmed - visually by means of 'drag and dropping' icons representing data - transformations onto a canvas and 'wiring' them together by means - of connecting input and output tabs together with mouse clicks. - One problem with DX is that while it is an exceptional - visualization environment, it was developed prior to the current - emphasis on accessing data from relational databases, relying on - the large data file formats that were (and still are) standard in - these fields - primarily HDF and netCDF. This is a problem - particularly for the gene expression field, where data is - progressively stored in relational databases to support complex - queries. - [see <a href="http://www.opendx.org">http://www.opendx.org</a>] - </p> - - <p> - Mostly this has been in pursuit of a Perl-OpenDX link so that a module - can be added to a visual DX net allowing arbitrary Perl code to be run - on the input. There are various problems - DX prefers to operate on - particular types of data fields, not the simple string input that Perl - favors, but there are many possibilitiess, high among them using Perl's - DBI to suck data from RDBs and format it for DX to do automated analysis - and visualization on. - </p> - - <p> - Status: I've gotten some DX-Perl modules built, but am still a ways away - from a solid generic module. - </p> - - <p> - A close second priority is the integration of the R statistical language - in the same way - compile it as a shared lib and have it communicate to - DX via sockets in the same way that I have Perl doing. R is actually a - better fit as it has an idea about data objects and already has support - for many of the interconversions of data types that DX supports. - </p> - - <p> - A logical 3rd candidate would be Python, as it theoretically integrates - more easily with C apps than Perl and there is already a Python project - for interacting with DX (tho it seems to be for controlling DX from - Python than rolling Python into DX.) - </p> - - <p> - The other project is the updating and converting to commandline scripts - those cgi analysis scripts that were included in the GeneX 1.0 release. - These include the CyberT significance testing, the Eisen/Sherlock - clustering code, (now incorporating Swaine Lin Chen's slcview heatmap - generation), and Karen's Rcluster codes. - </p> - - <p> - These updates should be making their way back into the CVS tree very - soon. Currently they are designed to work with a tree of - QuantArray-formatted replicates, soing significance testing on all of - the subgroups and then a summary significance test on all the subgroups - (this last summary test is specific to the experiment, so it may not be - appro for all expt'al designs). - </p> - - <p> - I'm also just about finished a larger descriptive page describing the - software in more detail and will post the location as soon as it's - ready, probably next week. - </p> - <p> - My last noise is a suggestion of starting to put together ideas for - making an external GUI app that does nothing but query the GeneX DB and - makes the output available as: - - tab-delimited spreadsheet-like files - - MAGE-ML - - N-dimensional file such as netCDF/HDF/XDF - - maybe a few others - </p> - - <p> - My suggestion would be to use Python and Qt so that it runs - cross-platform, using either the Qt designer (or BlackAdder if it EVER - sees the light of day). The Python bindings seem to be more stable and - coherent than for Perl. - </p> - - <hr> <p> <b><u>UVa Update - Tom Laudeman</u></b> </p> ! <p> ! Following Harry's good example, here's what we're up to: ! </p> ! ! <p> ! We're showing GeneX to end users this morning. We gave it to the Microarray Center people last week, but they've had a lull in orders. ! </p> ! ! <p> ! Jodi/Teela has finished the Analysis Tree schema. I think it has 8 tables. This schema allows for the linking analyses together, and for the analysis module plugins. ! </p> ! ! <p> ! Teela has been working on the analysis tree backend. ! </p> ! ! <p> ! I've got the trees drawing correctly, nodes delete, add, and rename. Trees render correctly no matter how complex. I created this before the db was ready, so I've been integrating with the Analysis Tree schema. ! </p> ! ! <p> ! The tree drawing is way cool. We can set up accounts on reed6.med for people who want to see it. ! </p> ! ! <hr> <p> <b><u>Open Informatics Update - Jason Stewart</u></b> </p> - <p> - Here's the status for me and my sub-contractors, Mark Wilkinson, and - Hyojoo Kang. - </p> - - <p> - <b>Mark:</b><br> - Added sysadmin tools for doing users/group mainenance and - created Mason front ends for them. - </p> - - <p> - <b>Hyojoo:</b><br> - Created a Java GUI for creating QT Dimensions that uses the MAGE-Java - API and thus can export MAGE-ML. The MAGE-ML QT Dimension is needed to - configure the data loader. - </p> - <p> - <b>Jason:</b><br> - </p> - - <p> - Planning<br> - ========<br> - I've been getting ready to switch to Postgres7.3 - </p> - - <p> - Service<br> - =======<br> - Helped Brandon get Genex-2.0a1 running at Caltech - </p> - - <p> - Genex-2<br> - ===== - </p> - - <p> - New Tools<br> - --<br> - * create user tools for adding Group's and ExperimentSet's and created a - mason front end for them. - </p> - - <p> - * Install - now uses a MANIFEST file. This file documents all local - files to be installed and where they will be installed. This is a - substitutable file (created from MANIFEST.in), so it is possible to - use the Config.pm values. - </p> - - <p> - Schema changes<br> - --<br> - * ExperimentSet - removed creation_date column. This information can - be found by using the Audit trail. - </p> - - <p> - Modifications to Perl API<br> - --<br> - * XMLUtils.pm - changed the internals of xml2sql() to use the new SQL - writing functions in Connect.pm. Added creation of rules to all - security views for INSERT/UPDATE/DELETE. Removed permission granting - code to make it more generic. Added support for a single master - sequence to be used by all tables. - </p> - <p> - * create_genex_db.pl - modified to handle granting of permissions. - </p> - - <p> - Goals for next week<br> - ===================<br> - Finish rules code - need to fix problem with GroupSec table having - ro/rw_groupname fkeys to itself. - </p> - - <p> - Ensure that ArrayDesign importer can handle Affy U133 files. - </p> - - <p> - Add ability to data loader to import .CEL data and MAS5 data. - </p> - </td> </tr> --- 16,35 ---- </p> <hr> <p> <b><u>UCI Update - Harry Mangalam</u></b> </p> <hr> <p> <b><u>UVa Update - Tom Laudeman</u></b> </p> ! <hr> <p> <b><u>Open Informatics Update - Jason Stewart</u></b> </p> </td> </tr> |
From: <ki...@us...> - 2002-11-09 05:40:43
|
Update of /cvsroot/genex/genex-www/status In directory usw-pr-cvs1:/tmp/cvs-serv24482 Modified Files: index.shtml Log Message: pointer to current month Index: index.shtml =================================================================== RCS file: /cvsroot/genex/genex-www/status/index.shtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** index.shtml 9 Nov 2002 05:36:59 -0000 1.2 --- index.shtml 9 Nov 2002 05:40:40 -0000 1.3 *************** *** 1,35 **** ! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> ! <HTML> ! <HEAD> <TITLE>GeneX @ SourceForge</TITLE></HEAD> ! ! <BODY bgcolor="white"> ! <center> ! <table border="1" cellpadding="0" cellspacing="0" width="800"> ! <tr> ! <td bgcolor="#FFFFBB" colspan="2"> ! <img src="http://genex.sourceforge.net/graphics/genex_banner.png" alt="genex banner"> ! </td> ! </tr> ! <tr> <!-- start Nav Bar table --> ! <td width="25%" valign="top"> ! ! <!--#include virtual="/status/status_menu.ssi"--> ! ! </td> ! <td align="LEFT" VALIGN="top"> ! ! <!--#include virtual="status_main.ssi"--> ! ! </td> ! </tr> ! <tr bgcolor="#8FB9AA"> ! <th colspan="2"> ! <!-- The Page Footer goes here --> ! <!--#include virtual="/content/footer.ssi"--> ! </th> ! </tr> ! </table> ! </center> ! </BODY> ! </HTML> ! --- 1 ---- ! <!--#include virtual="/status/2002/nov/index.shtml"--> \ No newline at end of file |
From: <ki...@us...> - 2002-11-09 05:37:01
|
Update of /cvsroot/genex/genex-www/status In directory usw-pr-cvs1:/tmp/cvs-serv23906 Modified Files: index.shtml Log Message: symbolic link to current month/year Index: index.shtml =================================================================== RCS file: /cvsroot/genex/genex-www/status/index.shtml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** index.shtml 8 Nov 2002 23:00:51 -0000 1.1 --- index.shtml 9 Nov 2002 05:36:59 -0000 1.2 *************** *** 14,18 **** <td width="25%" valign="top"> ! <!--#include virtual="status_menu.ssi"--> </td> --- 14,18 ---- <td width="25%" valign="top"> ! <!--#include virtual="/status/status_menu.ssi"--> </td> *************** *** 26,30 **** <th colspan="2"> <!-- The Page Footer goes here --> ! <!--#include virtual="../content/footer.ssi"--> </th> </tr> --- 26,30 ---- <th colspan="2"> <!-- The Page Footer goes here --> ! <!--#include virtual="/content/footer.ssi"--> </th> </tr> |
From: <jas...@us...> - 2002-11-09 00:48:18
|
Update of /cvsroot/genex/genex-server In directory usw-pr-cvs1:/tmp/cvs-serv26389 Modified Files: ChangeLog Log Message: usual Index: ChangeLog =================================================================== RCS file: /cvsroot/genex/genex-server/ChangeLog,v retrieving revision 1.103 retrieving revision 1.104 diff -C2 -d -r1.103 -r1.104 *** ChangeLog 7 Nov 2002 15:01:09 -0000 1.103 --- ChangeLog 9 Nov 2002 00:48:15 -0000 1.104 *************** *** 1,2 **** --- 1,10 ---- + 2002-11-08 Jason E. Stewart <ja...@op...> + + * G2G/mason/group-create.html.in (Repository): + better error reporting + + * Configure (Repository): + Added GENEX_MASTER_SEQ + 2002-11-07 Jason E. Stewart <ja...@op...> |
From: <jas...@us...> - 2002-11-09 00:48:05
|
Update of /cvsroot/genex/genex-server/Genex In directory usw-pr-cvs1:/tmp/cvs-serv26312/Genex Modified Files: ChangeLog Log Message: usual Index: ChangeLog =================================================================== RCS file: /cvsroot/genex/genex-server/Genex/ChangeLog,v retrieving revision 1.117 retrieving revision 1.118 diff -C2 -d -r1.117 -r1.118 *** ChangeLog 7 Nov 2002 14:59:11 -0000 1.117 --- ChangeLog 9 Nov 2002 00:48:02 -0000 1.118 *************** *** 1,3 **** --- 1,41 ---- + 2002-11-08 Jason E. Stewart <ja...@op...> + + * scripts/create_genex_class.pl.in (Repository): + now uses master sequence + uses table_or_viewname() instead of hard-coding names + removed fancy circular reference code from insert_db() and simply + made it illegal + fixed update_db() to handle inserting new objects + + * scripts/create_genex_db.pl.in (Repository): + added --no_tables to docs + doesn't require files if --no_tables + handles new output of xml2sql() + don't need to add perms for 'genex' + TableAdmin needs public UPDATE + master sequence needs public UPDATE + + * scripts/create-db-accounts.pl.in (Repository): + Because the code now refuses circular fkey refs, the groups must + be inserted first, and then updated with security groups and users + + * scripts/xml2sql.pl.in (Repository): + handles new xml2sql() output + + * XMLUtils/XMLUtils.pm.in (Repository): + split out data_views (like Provider) from security views + Added rules for INSERT/UPDATE/DELETE on security views + + * Makefile.PL (Repository): + removed cruft from when Genex.pm was installed outside system perl + library + + * Genex.pm.in (Repository): + new version (2.7.20021108) + 2002-11-07 Jason E. Stewart <ja...@op...> + + * scripts/mbad-insert.pl.in (Repository): + fixed compile bug precedence error * scripts/xml2sql.pl.in (Repository): |
From: <jas...@us...> - 2002-11-09 00:47:21
|
Update of /cvsroot/genex/genex-server/Genex/scripts In directory usw-pr-cvs1:/tmp/cvs-serv26102/Genex/scripts Modified Files: create_genex_class.pl.in Log Message: * scripts/create_genex_class.pl.in (Repository): now uses master sequence uses table_or_viewname() instead of hard-coding names removed fancy circular reference code from insert_db() and simply made it illegal fixed update_db() to handle inserting new objects Index: create_genex_class.pl.in =================================================================== RCS file: /cvsroot/genex/genex-server/Genex/scripts/create_genex_class.pl.in,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** create_genex_class.pl.in 20 Oct 2002 14:50:49 -0000 1.17 --- create_genex_class.pl.in 9 Nov 2002 00:47:18 -0000 1.18 *************** *** 1251,1254 **** --- 1251,1255 ---- assert_dbh(\$dbh); + my \$table_name = $full_module_name->table_or_viewname(\$dbh); my \@error_args = (); my (\$pack,\$file,\$line,\$sub) = caller(0); *************** *** 1259,1263 **** # first we ensure that the container instance is really in the DB my \$sql = \$dbh->create_select_sql( COLUMNS=>['$lt_fkey_pkey'], ! FROM=>[$lt_fkey_class_full->table_or_viewname(\$dbh)], WHERE=>qq[$lt_fkey_pkey='\$lt_pkey'], ); --- 1260,1264 ---- # first we ensure that the container instance is really in the DB my \$sql = \$dbh->create_select_sql( COLUMNS=>['$lt_fkey_pkey'], ! FROM=>[\$table_name], WHERE=>qq[$lt_fkey_pkey='\$lt_pkey'], ); *************** *** 1271,1275 **** my \$header = shift \@{\$matrix}; push(\@{\$header},'$lt_fkey'); ! \$sql = \$dbh->create_insert_sql('$module_name', \$header, ); --- 1272,1276 ---- my \$header = shift \@{\$matrix}; push(\@{\$header},'$lt_fkey'); ! \$sql = \$dbh->create_insert_sql(\$table_name, \$header, ); *************** *** 1338,1350 **** if (defined $PKEY) { if ($SERIAL_PKEY) { - # Postgres sequence names get truncated to 32 characters - my $suffix = "_$ {PKEY}_seq"; - my $seq_name = substr($module_name_lc, 0, 31 - length($suffix)); - $seq_name .= $suffix; # section with variable expansion *enabled* $HANDLE_PKEY = <<"EOT"; # pre-fetch the next value of the sequence ! my \$seq = '$seq_name'; ! \$sql = "SELECT nextval('\$seq'::text)"; my \$pkey = \$dbh->selectall_arrayref(\$sql) or \$dbh->error(\@error_args, --- 1339,1347 ---- if (defined $PKEY) { if ($SERIAL_PKEY) { # section with variable expansion *enabled* $HANDLE_PKEY = <<"EOT"; # pre-fetch the next value of the sequence ! my \$seq = '%%GENEX_MASTER_SEQ%%'; ! \$sql = qq[SELECT nextval('"\$seq"'::text)]; my \$pkey = \$dbh->selectall_arrayref(\$sql) or \$dbh->error(\@error_args, *************** *** 1390,1435 **** my $SELF_REFERENTIAL_FKEY_CHECK = ''; - my $SELF_REFERENTIAL_FKEY_INIT = ''; my $SELF_REFERENTIAL_FKEY_UPDATE = ''; if ($TABLE_CAN_SELF_REFERENCE) { # section with *no* variable expansion - $SELF_REFERENTIAL_FKEY_INIT = <<'EOT'; - my @SELF_REF; - EOT - - # section with *no* variable expansion $SELF_REFERENTIAL_FKEY_CHECK = <<'EOT'; # watch out for objects that reference themselves - # we set them to undef for now and UPDATE them after INSERTion my $column = $fkey_map->{$fkey->fkey_name}; if ($fkey->can_self_reference()) { ! push(@SELF_REF,{column=>$column, ! value=>$self->get_attribute($fkey->fkey_name)}); ! $self->set_attribute($column,undef); ! next; } EOT - - # section with variable expansion *enabled* - $SELF_REFERENTIAL_FKEY_UPDATE = <<"EOT"; - my \%set; - foreach (\@SELF_REF) { - my \$column = \$_->{column}; - - # after we've inserted ourselves we risk the self-reference - my \$value = \$_->{value}->insert_db(\%args); - \$set{\$column} = \$value; - } - my \$pkey_value = \$dbh->quote(\$self->$PKEY()); - my \$column = \$dbh->quote_identifier('$PKEY'); - \$sql = \$dbh->create_update_sql(TABLE=>'$module_name_lc', - SET=>\\\%set, - WHERE=>qq[\$column=\$pkey_value]); - \$dbh->do(\$sql); - \$dbh->error(\@error_args, - sql=>\$sql, - message=>"Couldn't execute UPDATE SQL") - if \$dbh->err; - EOT } --- 1387,1404 ---- my $SELF_REFERENTIAL_FKEY_CHECK = ''; my $SELF_REFERENTIAL_FKEY_UPDATE = ''; if ($TABLE_CAN_SELF_REFERENCE) { # section with *no* variable expansion $SELF_REFERENTIAL_FKEY_CHECK = <<'EOT'; # watch out for objects that reference themselves my $column = $fkey_map->{$fkey->fkey_name}; if ($fkey->can_self_reference()) { ! $dbh->error(@error_args, ! message=>"Cannot insert self-referential objects", ! no_errstr=>1, ! ) ! if $self->get_attribute($fkey->fkey_name) eq $self; } EOT } *************** *** 1553,1556 **** --- 1522,1526 ---- assert_dbh(\$dbh); + my \$table_name = $full_module_name->table_or_viewname(\$dbh); my \@error_args = (dbh=>\$dbh); my (\$pack,\$file,\$line,\$sub) = caller(0); *************** *** 1561,1566 **** $DEBUG_PRE - $SELF_REFERENTIAL_FKEY_INIT - # before we can check whether or not an object is in the DB # we have to first resolve all fkey values of type OTO, MTO, and LINK --- 1531,1534 ---- *************** *** 1606,1610 **** } \$UNIQUE_WHERE = join(' AND ', \@clauses); ! my \$sth = \$dbh->fetch_object_statement(\$self->table_or_viewname(\$dbh),\$UNIQUE_WHERE); \$sth->execute() || \$dbh->error(\@error_args, --- 1574,1578 ---- } \$UNIQUE_WHERE = join(' AND ', \@clauses); ! my \$sth = \$dbh->fetch_object_statement(\$table_name,\$UNIQUE_WHERE); \$sth->execute() || \$dbh->error(\@error_args, *************** *** 1638,1642 **** # execute the INSERT ! \$sql = \$dbh->create_insert_sql('$module_name',\\\%values); \$dbh->do(\$sql); --- 1606,1610 ---- # execute the INSERT ! \$sql = \$dbh->create_insert_sql(\$table_name,\\\%values); \$dbh->do(\$sql); *************** *** 1647,1651 **** } ! $SELF_REFERENTIAL_FKEY_UPDATE $GENEX_ADMIN --- 1615,1620 ---- } ! # identify ourselves as belonging to this DB ! \$self->dbh(\$dbh); $GENEX_ADMIN *************** *** 1663,1666 **** --- 1632,1672 ---- # begin print_update_db() + my $RESOLVE_FKEYS_POST; + if (scalar @otm_lt_fkeys) { + $RESOLVE_FKEYS_POST .= <<"EOT"; # section with variable expansion *enabled* + + # FKEY_OTM_LT_OO are currently not handled + + EOT + } + + if (scalar @otm_fkeys, @otm_link_fkeys) { + # we only take the OO fkeys from, so we grep + $RESOLVE_FKEYS_POST .= <<"EOT"; # section with variable expansion *enabled* + + # we want to insert all ONE-TO-MANY foreign keys we reference after + # we insert ourselves We only handle inserts for now, updates can be + # circular + + my \@post_fkeys2 = grep {(\$_->fkey_type eq FKEY_OTM_OO) + or (\$_->fkey_type eq FKEY_OTM_LINK_OO) + } \@fkeys; + foreach my \$fkey (\@post_fkeys2) { + my \$fkey_name = \$fkey->fkey_name(); + # we use get_attribute() because we don't want to invoke a fetch + my \$objs = \$self->get_attribute(\$fkey_name); + next if !defined \$objs or !scalar \@{\$objs}; + foreach my \$obj (\@{\$objs}) { + # we must decide to call insert or update based on whether + # the object has a DB handle or not + if (!defined \$obj->dbh) { + # dbh is *not* set, so it's not in the DB, so we call insert + \$obj->insert_db(\$dbh); + } + } + } + EOT + } + print OUT <<"EOT"; # section with variable expansion *enabled* *************** *** 1677,1681 **** $module_name->update_db(); ! B<NOTE:> You must log into the DB with a user/password that has INSERT priveleges in the DB, otherwise you will get a DBI error. --- 1683,1687 ---- $module_name->update_db(); ! B<NOTE:> You must log into the DB with a user/password that has UPDATE priveleges in the DB, otherwise you will get a DBI error. *************** *** 1692,1698 **** unless defined \$self->id() && defined \$self->$PKEY(); ! my \$db_obj = $ {full_module_name}->new(dbh=>\$dbh, ! id=>\$self->id(), ! fetch_all=>1); # iterate over the fields and add them to the INSERT --- 1698,1731 ---- unless defined \$self->id() && defined \$self->$PKEY(); ! # before we can update the values for the object ! # we have to first resolve all fkey values of type OTO, MTO, and LINK ! # because if they didn't exist before it will change foreign key ! # values in this object. We only handle inserts for now, ! # updates can be circular ! my \@fkeys = values \%{\$self->fkeys()}; ! my \@pre_fkeys = grep {(\$_->fkey_type eq FKEY_OTO_OO) ! or (\$_->fkey_type eq FKEY_MTO_OO) ! or (\$_->fkey_type eq FKEY_LINK_OO) ! } \@fkeys; ! foreach my \$fkey (\@pre_fkeys) { ! my \$fkey_map = \$self->fkey_obj2raw(); ! my \$fkey_name = \$fkey->fkey_name(); ! ! # we use get_attribute() because we don't want to invoke a fetch ! my \$obj = \$self->get_attribute(\$fkey_name); ! next unless defined \$obj; ! ! # we must decide to call insert or update based on whether ! # the object has a DB handle or not ! if (!defined \$obj->dbh) { ! # dbh is *not* set, so it's not in the DB, so we call insert ! \$obj->insert_db(\$dbh); ! } ! my \$pkey = \$obj->id(); ! ! # we make sure that we have the fkey values set ! my \$fkey_method = \$fkey_map->{\$fkey_name}; ! \$self->\$fkey_method(\$pkey); ! } # iterate over the fields and add them to the INSERT *************** *** 1701,1718 **** # we don't want Bio::Genex::undefined() to get called my \$val = \$self->get_attribute(\$col); ! next unless defined \$val; ! ! # only add to the list if different from the DB ! if (\$val ne \$db_obj->get_attribute(\$col)) { ! \$values{\$col} = \$val; ! } } - # we only call UPDATE if there is something to update - return 0 unless scalar keys \%values; # execute the UPDATE my \$WHERE = '$PKEY=' . \$dbh->quote(\$self->$PKEY()); my \$sql = \$dbh->create_update_sql( ! TABLE=>'$module_name', SET=>\\\%values, WHERE=>\$WHERE); --- 1734,1745 ---- # we don't want Bio::Genex::undefined() to get called my \$val = \$self->get_attribute(\$col); ! \$values{\$col} = \$val; } # execute the UPDATE my \$WHERE = '$PKEY=' . \$dbh->quote(\$self->$PKEY()); + my \$table_name = $full_module_name->table_or_viewname(\$dbh); my \$sql = \$dbh->create_update_sql( ! TABLE=>\$table_name, SET=>\\\%values, WHERE=>\$WHERE); *************** *** 1724,1727 **** --- 1751,1757 ---- return undef; } + + $RESOLVE_FKEYS_POST + return 1; } |
From: <jas...@us...> - 2002-11-09 00:43:42
|
Update of /cvsroot/genex/genex-server/Genex/scripts In directory usw-pr-cvs1:/tmp/cvs-serv25110/Genex/scripts Modified Files: create_genex_db.pl.in Log Message: * scripts/create_genex_db.pl.in (Repository): added --no_tables to docs doesn't require files if --no_tables handles new output of xml2sql() don't need to add perms for 'genex' TableAdmin needs public UPDATE master sequence needs public UPDATE Index: create_genex_db.pl.in =================================================================== RCS file: /cvsroot/genex/genex-server/Genex/scripts/create_genex_db.pl.in,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** create_genex_db.pl.in 7 Nov 2002 14:44:57 -0000 1.6 --- create_genex_db.pl.in 9 Nov 2002 00:43:39 -0000 1.7 *************** *** 36,39 **** --- 36,40 ---- optional args: --admin_db=name : the DB to connect to in order to create the new DB + --no_tables=name : only proces functions and triggers --help : print this message EOU *************** *** 50,54 **** unless exists $OPTIONS{functions}; die "Must specify files\n$USAGE" ! unless scalar @ARGV; # these tables need modification_date and creation_date triggers --- 51,55 ---- unless exists $OPTIONS{functions}; die "Must specify files\n$USAGE" ! unless exists $OPTIONS{no_tables} or scalar @ARGV; # these tables need modification_date and creation_date triggers *************** *** 127,131 **** PASSWORD=>$OPTIONS{password}); ! my ($script,$all_tables,$trigger_tables,$views) = xml2sql($dbh,@ARGV); print STDERR "\n\n\tCreating Tables ...\n\n"; --- 128,132 ---- PASSWORD=>$OPTIONS{password}); ! my ($script,$all_tables,$data_views,$trigger_tables,$sec_views) = xml2sql($dbh,@ARGV); print STDERR "\n\n\tCreating Tables ...\n\n"; *************** *** 138,156 **** my $sql; print STDERR "\n\n\nSetting Permissions on Tables ...\n\n"; ! foreach my $table (@{$all_tables}) { ! my @perms = qw(ALL); ! $sql .= $dbh->create_grant_sql(TABLE=>$table, ! USERS=>['genex'], ! PERMS=>\@perms, ! ); ! if ($table eq 'Sessions') { ! @perms = qw(INSERT SELECT UPDATE DELETE); ! $sql .= $dbh->create_grant_sql(TABLE=>$table, ! USERS=>['PUBLIC'], ! PERMS=>\@perms, ! ); ! } ! } ! $dbh->do($sql); $dbh->error(@error_args, --- 139,150 ---- my $sql; print STDERR "\n\n\nSetting Permissions on Tables ...\n\n"; ! $sql .= $dbh->create_grant_sql(TABLE=>'Sessions', ! USERS=>['PUBLIC'], ! PERMS=>[qw(INSERT SELECT UPDATE DELETE)], ! ); ! $sql .= $dbh->create_grant_sql(TABLE=>'TableAdmin', ! USERS=>['PUBLIC'], ! PERMS=>[qw(SELECT UPDATE)], ! ); $dbh->do($sql); $dbh->error(@error_args, *************** *** 161,165 **** print STDERR "\n\n\nSetting Permissions on Views ...\n\n"; $sql = ''; ! foreach my $view (@{$views}) { $sql .= $dbh->create_grant_sql(TABLE=>$view, USERS=>['PUBLIC'], --- 155,159 ---- print STDERR "\n\n\nSetting Permissions on Views ...\n\n"; $sql = ''; ! foreach my $view (@{$sec_views}) { $sql .= $dbh->create_grant_sql(TABLE=>$view, USERS=>['PUBLIC'], *************** *** 173,176 **** --- 167,185 ---- sql=>$sql, message=>'Adding Permissions to the views') + if $dbh->err; + + my $MASTER_SEQ = '%%GENEX_MASTER_SEQ%%'; + + print STDERR "\n\n\nSetting Permissions on Master Sequence ...\n\n"; + $sql = ''; + $sql .= $dbh->create_grant_sql(TABLE=>qq["$MASTER_SEQ"], + USERS=>['PUBLIC'], + PERMS=>[qw(SELECT UPDATE)], + ); + + $dbh->do($sql); + $dbh->error(@error_args, + sql=>$sql, + message=>'Adding Permissions to the master sequence') if $dbh->err; |
From: <jas...@us...> - 2002-11-09 00:41:39
|
Update of /cvsroot/genex/genex-server/Genex/scripts In directory usw-pr-cvs1:/tmp/cvs-serv24628/Genex/scripts Modified Files: create-db-accounts.pl.in Log Message: * scripts/create-db-accounts.pl.in (Repository): Because the code now refuses circular fkey refs, the groups must be inserted first, and then updated with security groups and users Index: create-db-accounts.pl.in =================================================================== RCS file: /cvsroot/genex/genex-server/Genex/scripts/create-db-accounts.pl.in,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** create-db-accounts.pl.in 15 Oct 2002 14:44:16 -0000 1.7 --- create-db-accounts.pl.in 9 Nov 2002 00:41:36 -0000 1.8 *************** *** 96,105 **** my @tables_affected; ! # insert the GroupSec entries, and they will insert the users and contacts foreach my $gs_db (@gs_dbs) { $gs_db->insert_db($dbh) || error(@error_args, message=>"Trouble inserting GroupSec '" ! . $gs_db->groupname . "' into DB"); } print STDERR "Finished\n"; --- 96,140 ---- my @tables_affected; ! # insert the GroupSec entries, and they will insert the users and ! # contacts because of a tricky order-of-insertion issue with GroupSec, ! # we must first insert the groups themselves, with no members, and no ! # ro/rw_groupname's, and then update them ! ! my %groups; foreach my $gs_db (@gs_dbs) { + # remember the initial values and reset them + $groups{$gs_db}->{ro_group} = $gs_db->ro_groupname_obj(); + $groups{$gs_db}->{rw_group} = $gs_db->rw_groupname_obj(); + $groups{$gs_db}->{ro_groupname} = $gs_db->ro_groupname(); + $groups{$gs_db}->{rw_groupname} = $gs_db->rw_groupname(); + $groups{$gs_db}->{members} = $gs_db->grouplink_obj(); + $gs_db->ro_groupname_obj(undef); + $gs_db->rw_groupname_obj(undef); + $gs_db->ro_groupname(undef); + $gs_db->rw_groupname(undef); + $gs_db->grouplink_obj(undef); + + # insert the group $gs_db->insert_db($dbh) || error(@error_args, message=>"Trouble inserting GroupSec '" ! . $gs_db->name . "' into DB"); ! ! } ! ! foreach my $gs_db (@gs_dbs) { ! # reset the initial values and update the entries ! $gs_db->ro_groupname_obj($groups{$gs_db}->{ro_group}); ! $gs_db->rw_groupname_obj($groups{$gs_db}->{rw_group}); ! $gs_db->ro_groupname($groups{$gs_db}->{ro_groupname}); ! $gs_db->rw_groupname($groups{$gs_db}->{rw_groupname}); ! $gs_db->grouplink_obj($groups{$gs_db}->{members}); ! ! # update the group ! $gs_db->update_db() || ! error(@error_args, ! message=>"Trouble updating GroupSec '" ! . $gs_db->name . "' into DB"); ! } print STDERR "Finished\n"; |
From: <jas...@us...> - 2002-11-09 00:40:13
|
Update of /cvsroot/genex/genex-server/Genex/scripts In directory usw-pr-cvs1:/tmp/cvs-serv24320/Genex/scripts Modified Files: xml2sql.pl.in Log Message: * scripts/xml2sql.pl.in (Repository): handles new xml2sql() output Index: xml2sql.pl.in =================================================================== RCS file: /cvsroot/genex/genex-server/Genex/scripts/xml2sql.pl.in,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** xml2sql.pl.in 7 Nov 2002 14:49:10 -0000 1.4 --- xml2sql.pl.in 9 Nov 2002 00:40:10 -0000 1.5 *************** *** 33,41 **** my $dbh = Bio::Genex::Connect->new(); ! my ($sql,$all_tables,$audit_tables,$all_views) = Bio::Genex::XMLUtils::xml2sql($dbh,@ARGV); printf STDERR "Created tables: %s\n", join(', ', @{$all_tables}); printf STDERR "Audit tables: %s\n", join(', ', @{$audit_tables}); ! printf STDERR "Created views: %s\n\n", join(', ', @{$all_views}); print STDOUT $sql; --- 33,42 ---- my $dbh = Bio::Genex::Connect->new(); ! my ($sql,$all_tables,$data_views,$audit_tables,$sec_views) = Bio::Genex::XMLUtils::xml2sql($dbh,@ARGV); printf STDERR "Created tables: %s\n", join(', ', @{$all_tables}); printf STDERR "Audit tables: %s\n", join(', ', @{$audit_tables}); ! printf STDERR "Created data views: %s\n\n", join(', ', @{$data_views}); ! printf STDERR "Created security views: %s\n\n", join(', ', @{$sec_views}); print STDOUT $sql; |
From: <jas...@us...> - 2002-11-09 00:39:18
|
Update of /cvsroot/genex/genex-server/G2G/mason In directory usw-pr-cvs1:/tmp/cvs-serv24121/G2G/mason Modified Files: group-create.html.in Log Message: * G2G/mason/group-create.html.in (Repository): better error reporting Index: group-create.html.in =================================================================== RCS file: /cvsroot/genex/genex-server/G2G/mason/group-create.html.in,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** group-create.html.in 7 Nov 2002 14:38:48 -0000 1.1 --- group-create.html.in 9 Nov 2002 00:39:15 -0000 1.2 *************** *** 151,154 **** --- 151,155 ---- my $command = join(' ', $cmd, @args); my $pk = `$command`; + chomp($pk); if ($?) { $data = <<EOE; *************** *** 157,163 **** <p>Error output = <$!></p> EOE ! } else { $data = <<EOT; ! <p>You can now populate the group <a href="%%GENEX_WORKSPACE_URL%%/group-maint.html?submitted=true&groupname=$pk">here</a></p> EOT --- 158,170 ---- <p>Error output = <$!></p> EOE ! } elsif (!$pk) { ! $data = <<EOE; ! <p><b>ERROR</b></p> ! <p>Group not inserted</p> ! <p>Check error log</p> ! EOE ! } else { $data = <<EOT; ! <p>Group <$pk> successfully created. You can now populate the group <a href="%%GENEX_WORKSPACE_URL%%/group-maint.html?submitted=true&groupname=$pk">here</a></p> EOT |
From: <jas...@us...> - 2002-11-09 00:38:40
|
Update of /cvsroot/genex/genex-server/DB/xml In directory usw-pr-cvs1:/tmp/cvs-serv23701/DB/xml Added Files: functions-sql.xml.in Removed Files: functions-sql.xml Log Message: made substitutable because of master sequence name --- NEW FILE: functions-sql.xml.in --- <?xml version="1.0" standalone="yes"?> <function_list> <function function_name="audit" comment="this function is used by triggers for almost all tables to handle the audit_fk field automatically" function=" CREATE OR REPLACE FUNCTION audit () RETURNS OPAQUE AS ' DECLARE ts TIMESTAMP := ''now''; new_audit INT4 := nextval(''"%%GENEX_MASTER_SEQ%%"''::text); BEGIN IF TG_OP = ''INSERT'' THEN INSERT INTO Audit_view (audit_pk, modification_date, modified_by) VALUES (new_audit, ts, user()); ELSE /* for UPDATE we keep a trail of audits */ INSERT INTO Audit_view (audit_pk,audit_fk,modification_date,modified_by) VALUES (new_audit,OLD.audit_fk,ts,user()); END IF; UPDATE tableadmin SET audit_fk = new_audit WHERE UPPER(table_name) = UPPER(text(TG_RELNAME)); NEW.audit_fk := new_audit; RETURN NEW; END; ' LANGUAGE 'plpgsql'; "/> <function function_name="audit_tableadmin" comment="this function is used by triggers for the TableAdmin table to handle the audit_fk field automatically" function=" CREATE OR REPLACE FUNCTION audit_tableadmin () RETURNS OPAQUE AS ' DECLARE ts TIMESTAMP := ''now''; new_audit INT4 := nextval(''"%%GENEX_MASTER_SEQ%%"''::text); BEGIN RAISE NOTICE ''INSERT tableadmin''; INSERT INTO Audit_view (audit_pk,modification_date,modified_by) VALUES (new_audit, current_timestamp, current_user); NEW.audit_fk := new_audit; RETURN NEW; END; ' LANGUAGE 'plpgsql'; "/> <function function_name="audit_contact" comment="This function is used by ContactType to handle the updating of its special relationship with Contact" function=" CREATE OR REPLACE FUNCTION audit_contact () RETURNS OPAQUE AS ' DECLARE ts TIMESTAMP := ''now''; new_audit INT4 := nextval(''"%%GENEX_MASTER_SEQ%%"''::text); BEGIN IF TG_OP = ''INSERT'' THEN INSERT INTO Audit_view (audit_pk,modification_date,modified_by) VALUES (new_audit, ts, user()); ELSE /* for UPDATE we keep a trail of audits */ INSERT INTO Audit_view (audit_pk, audit_fk,modification_date,modified_by) VALUES (new_audit, OLD.audit_fk,ts, user()); END IF; UPDATE Contact_view set audit_fk = new_audit WHERE con_pk = NEW.con_fk; UPDATE tableadmin set audit_fk = new_audit WHERE UPPER(table_name) = UPPER(text(TG_RELNAME)) OR UPPER(table_name) = ''CONTACT''; RETURN NEW; END; ' LANGUAGE 'plpgsql'; "/> <function function_name="modification_time" comment="This function is used to add timestamps to DB rows" function=" CREATE OR REPLACE FUNCTION modification_time () RETURNS OPAQUE AS ' BEGIN NEW.modification_time := ''now''; RETURN NEW; END; ' LANGUAGE 'plpgsql'; "/> </function_list> --- functions-sql.xml DELETED --- |
From: <jas...@us...> - 2002-11-09 00:38:04
|
Update of /cvsroot/genex/genex-server/Genex/GroupLink In directory usw-pr-cvs1:/tmp/cvs-serv21786/Genex/GroupLink Modified Files: GroupLink.pm Log Message: new |
From: <jas...@us...> - 2002-11-09 00:38:04
|
Update of /cvsroot/genex/genex-server/Genex/FeatureExtractionSoftware In directory usw-pr-cvs1:/tmp/cvs-serv21786/Genex/FeatureExtractionSoftware Modified Files: FeatureExtractionSoftware.pm Log Message: new |
From: <jas...@us...> - 2002-11-09 00:38:03
|
Update of /cvsroot/genex/genex-server/Genex/Feature In directory usw-pr-cvs1:/tmp/cvs-serv21786/Genex/Feature Modified Files: Feature.pm Log Message: new |