60aa0ab | Anthony Brummett | 14 November 2012, 15:59:17 UTC | Improve server response when getting foreign key info The query used by DBD::Oracle to get foreign key info performs poorly on Oracle 11 because of a hint in the query. It seems to work better to run the same query without the hint. Since DBD::Oracle isn't set up to plug in different queries, we need to cut-and-paste it's method to remove the hint. The original method gets called for Oracle versions before 11 | 14 November 2012, 16:00:51 UTC |
1ab73d5 | Nathan Nutter | 08 November 2012, 15:38:14 UTC | do local aggregates iff members have changes - Updated test to check that aggregate functions are done client-side only for sets whose members have changes. The old behavior was that if any object of the same class had changes the aggregate function would be done client-side. - Update the Set class so that it only checks for changes in objects that are members of the set. | 08 November 2012, 15:44:22 UTC |
455fc4e | Nathan Nutter | 08 November 2012, 15:37:55 UTC | add overload operators for != and ne like == and eq | 08 November 2012, 15:37:55 UTC |
0399ea3 | Nathan Nutter | 07 November 2012, 21:21:44 UTC | rename person_set to cool_person_set | 07 November 2012, 21:21:44 UTC |
18cd780 | Anthony Brummett | 23 October 2012, 22:13:48 UTC | Now that UR::DataSource::Filesystem is working, File and FileMux are deprecated. Say that in the docs | 23 October 2012, 22:13:48 UTC |
6bcebf7 | Anthony Brummett | 23 October 2012, 21:56:30 UTC | doc updates | 23 October 2012, 21:56:30 UTC |
85325d0 | Anthony Brummett | 23 October 2012, 21:53:02 UTC | Fix a bug with multi-char record_separators If the last read of the file did not include all the characters in the record_separator, then whatever data was in the last column would include whatever partial separator characters that were there. While it is possible that actual column data can include the first few characters of the record_separator, it's probably pretty rare that it happend only in the very last line in a file. That's the only case where it would fill in the wrong data fo an object. | 23 October 2012, 21:53:02 UTC |
e1e3fbb | Anthony Brummett | 23 October 2012, 21:50:07 UTC | Allow handle_class to be something that inherits from IO::File to override some of its methods This lets handle_class be something that @ISA IO::File, override getline() and expect that it will be called. Previously, if $handle_class->isa(IO::File) then the data source would use <$fh> to read from the file instead of calling getline() | 23 October 2012, 21:50:07 UTC |
933909f | Anthony Brummett | 23 October 2012, 19:07:18 UTC | Check for eof when a read returns nothing This seems to be needed in the case where the record separator is more than one character, but a read() isn't able to read enough data to match it. For example, if $/ is "\n\n", but the file ends in a single "\n", then the the very final read returns no data and sets $! to EAGAIN | 23 October 2012, 19:07:18 UTC |
5ffacba | Anthony Brummett | 23 October 2012, 19:06:30 UTC | Allow "undef" as a value in the data source's "columns" list This lets you ignore columns in the underlying data | 23 October 2012, 19:06:30 UTC |
54e0cad | Anthony Brummett | 23 October 2012, 19:04:53 UTC | cleanup | 23 October 2012, 19:05:44 UTC |
6b5d3d3 | Anthony Brummett | 23 October 2012, 18:50:44 UTC | Merge branch 'master' into newfileds | 23 October 2012, 18:50:44 UTC |
fffa037 | Anthony Brummett | 23 October 2012, 18:48:47 UTC | Remove breakpoints | 23 October 2012, 18:48:47 UTC |
ba35a78 | Anthony Brummett | 23 October 2012, 18:41:26 UTC | Fix the case where some property values are determined from pathname resolution All the tests pass now | 23 October 2012, 18:41:26 UTC |
216c77f | Anthony Brummett | 23 October 2012, 18:32:50 UTC | You can now use $. and __FILE__ as column names in class metadata that uses the new Filesystem datasource Some other filesystem datasource tests are still failing... | 23 October 2012, 18:32:50 UTC |
1e40297 | Anthony Brummett | 08 March 2012, 17:11:23 UTC | Mention in the POD that you can put braces around property and method names in the path spec | 19 October 2012, 19:52:53 UTC |
ad2433d | Anthony Brummett | 08 March 2012, 17:00:56 UTC | Added pod to the Filesystem data source | 19 October 2012, 19:52:52 UTC |
d8f841a | Anthony Brummett | 07 March 2012, 23:05:44 UTC | Removed the 'quick_disconnect' property from UR::DS::Filesystem It wasn't used | 19 October 2012, 19:52:52 UTC |
63d7a84 | Anthony Brummett | 06 March 2012, 19:40:03 UTC | After a fork(), and it notices there's been a fork, remember the new PID as the primary pid | 19 October 2012, 19:52:52 UTC |
fff3762 | Anthony Brummett | 05 March 2012, 19:32:51 UTC | Prepend "FILE:" to the logger output during saves, to match the other logger output | 19 October 2012, 19:52:52 UTC |
01625c0 | Anthony Brummett | 02 March 2012, 21:59:40 UTC | UR::DataSource::Filesystem saving works | 19 October 2012, 19:52:52 UTC |
585ea64 | Anthony Brummett | 02 March 2012, 20:08:18 UTC | Added File::Temp and File::Path to the prerequisites list They've been necessary basically forever, but weren't tracked. | 19 October 2012, 19:52:51 UTC |
3b1f28e | Anthony Brummett | 02 March 2012, 20:04:51 UTC | Make the API for committed/saved/rolled-back status tracking more consistent The method UR::DataSource::_set_all_specified_objects_saved_committed() is now deprecated. The new method is called _set_specified_objects_saved_committed() and accepts a listref of objects just as _set_specified_objects_saved_uncommitted(). Added a method _set_specified_objects_saved_rolled_back() | 19 October 2012, 19:52:51 UTC |
8415c9a | Anthony Brummett | 01 March 2012, 22:05:13 UTC | Refactor to have a common method for getting a sort sub | 19 October 2012, 19:52:51 UTC |
72d6c58 | Anthony Brummett | 01 March 2012, 21:06:48 UTC | Be more precise when sorting string or numeric properties/columns Get rid of the generic sorters that do a numeric comparison first, then a string comparison. Instead, check the data type of the property first and do the proper numeric or stringwise comparison for that property | 19 October 2012, 19:52:51 UTC |
ff65ba8 | Anthony Brummett | 01 March 2012, 17:49:23 UTC | Behave properly after a fork() In the child process, the filehandle will appear to be open, but reading from it will return nothing. The file reader closure remembers what the PID is before opening the file, and if $$ is ever different it reopens the filehandle and seeks to the proper position | 19 October 2012, 19:52:51 UTC |
d8b710b | Anthony Brummett | 01 March 2012, 16:32:29 UTC | Cleanup remove some commented-out lines change variable names to be more descriptive | 19 October 2012, 19:52:50 UTC |
99d361f | Anthony Brummett | 01 March 2012, 16:31:12 UTC | Add another test using the 'between' operator and multiple sorted columns | 19 October 2012, 19:52:50 UTC |
c3388fd | Anthony Brummett | 01 March 2012, 16:00:09 UTC | Sort the resultsets in the right order for descending | 19 October 2012, 19:52:50 UTC |
43c75b3 | Anthony Brummett | 01 March 2012, 15:51:30 UTC | Avoid an uninitialized value warning if a file is sorted by a column that isn't in the rule | 19 October 2012, 19:52:50 UTC |
07c22ae | Anthony Brummett | 29 February 2012, 23:18:05 UTC | Pass a reference to the comparison data to the comparator functions instead of the raw data This will speed things up if the data read from the file is large | 19 October 2012, 19:52:50 UTC |
06d93f2 | Anthony Brummett | 29 February 2012, 22:59:08 UTC | Teach the Filesystem data source to stop reading early if the file is sorted properly The individual file filtering iterators can take advantage of the ordering of the file and stop reading if a column comparison fails in such a way that it knows no further matches will be found. It works for both ascending and descending sorted file data. | 19 October 2012, 19:52:50 UTC |
58a7715 | Anthony Brummett | 29 February 2012, 22:53:56 UTC | Avoid a memory leak when reading a file bails out early The individual file iterators were keeping a reference to itself. If the reading reached EOF, it gave up its reference by reassigning the closed-over var to the null_sub, and things were cleaned up properly. But if the reading bailed out early because of it knew the sorting of the file, then it was not giving up the reference. The fix was to not worry about reassigning to null_sub. The multiplexing iterator (the next one out) splices the individual reader iterators out of the list when they stop returning data. | 19 October 2012, 19:52:49 UTC |
5758913 | Anthony Brummett | 29 February 2012, 21:52:12 UTC | Allow the path property to be an arrayref If it's an arrayref, the first time something needs to know the path, it picks on based on the processID and then stays with it for the rest of the program | 19 October 2012, 19:52:49 UTC |
8ce665f | Anthony Brummett | 29 February 2012, 20:22:08 UTC | Added support for -order-by descending and having the file sorted descending | 19 October 2012, 19:52:49 UTC |
e614d24 | Anthony Brummett | 29 February 2012, 15:57:47 UTC | get() with order-by as well as arbitrary sorting now works with the Filesystem data source | 19 October 2012, 19:52:49 UTC |
8b787b3 | Anthony Brummett | 28 February 2012, 22:57:04 UTC | Initial support for -order-by with the file Filesystem data source | 19 October 2012, 19:52:48 UTC |
7263062 | Anthony Brummett | 28 February 2012, 20:41:59 UTC | Give classes a __default__ table_name where appropriate If the class does not otherwise specify a table_name, but the data_source has the flag set to fill in column names for properties, then give the class the table name '__default__' | 19 October 2012, 19:52:48 UTC |
59ed42e | Anthony Brummett | 28 February 2012, 20:24:44 UTC | Change a die into Carp::croak() | 19 October 2012, 19:52:30 UTC |
a74bbc1 | Anthony Brummett | 28 February 2012, 20:24:13 UTC | Refactor to pull the order-by column resolution into its own method | 19 October 2012, 19:52:30 UTC |
df5dffb | Anthony Brummett | 28 February 2012, 17:55:20 UTC | _add_join() didn't need $order_by | 19 October 2012, 19:52:30 UTC |
8ebfb0b | Anthony Brummett | 27 February 2012, 20:22:24 UTC | Forgot to pass in the rule | 19 October 2012, 19:52:30 UTC |
5ec7ebf | Anthony Brummett | 27 February 2012, 20:22:08 UTC | Need to use a string comparison, not numeric | 19 October 2012, 19:52:30 UTC |
c051017 | Anthony Brummett | 22 February 2012, 20:48:51 UTC | Add more info to the TODO list | 19 October 2012, 19:52:29 UTC |
8ab3500 | Anthony Brummett | 21 February 2012, 20:04:19 UTC | Change comments Added a todo changed references to 'server' attribute to 'path' | 19 October 2012, 19:52:29 UTC |
02e4d9c | Anthony Brummett | 21 February 2012, 20:03:17 UTC | Variable rename @next_record -> @next_record_for_each_file | 19 October 2012, 19:52:29 UTC |
16fc6f3 | Anthony Brummett | 21 February 2012, 19:49:54 UTC | Allow the file contents to be not sorted by ID, but still return data to the loading iterator by ID If the first sorted columns in the file are not ID property columns, then we have to fall back to a less efficient mechanism where all the matching rows is read from the file, sorted by ID, and the original iterator is replaced by something that returns items from the now-sorted list | 19 October 2012, 19:52:29 UTC |
9c12bd9 | Anthony Brummett | 21 February 2012, 19:49:41 UTC | Remove commented out lines | 19 October 2012, 19:52:29 UTC |
12ffa9b | Anthony Brummett | 20 February 2012, 22:29:43 UTC | Test having different column order in different files | 19 October 2012, 19:52:28 UTC |
37ae947 | Anthony Brummett | 20 February 2012, 22:19:04 UTC | Add support for getting the column names out of the top of the file Figure out the column order after we've figured out which files we'll be reading from. | 19 October 2012, 19:52:28 UTC |
e6edd23 | Anthony Brummett | 20 February 2012, 17:46:52 UTC | Update the number of tests | 19 October 2012, 19:52:28 UTC |
37092bf | Anthony Brummett | 20 February 2012, 17:46:29 UTC | The 'server' property for UR::DS::Filesystem is now 'path' | 19 October 2012, 19:52:28 UTC |
9770137 | Anthony Brummett | 20 February 2012, 17:34:36 UTC | Fix bug about printing 'first match' messages too much The logger closure was unsetting the wrong variable | 19 October 2012, 19:52:28 UTC |
169434c | Anthony Brummett | 20 February 2012, 17:32:35 UTC | Be explicit in the debugging messages when there are no filters | 19 October 2012, 19:52:28 UTC |
fd351c5 | Anthony Brummett | 20 February 2012, 17:08:26 UTC | Support classses having 'tables' with the Filesystem datasource It works by using the table_name class metadata to indicate a file name within the directory pointed to by the path spec | 19 October 2012, 19:52:27 UTC |
4fa761c | Anthony Brummett | 20 February 2012, 17:07:30 UTC | Add a test got getting by ID | 19 October 2012, 19:52:27 UTC |
03c3942 | Anthony Brummett | 20 February 2012, 17:04:21 UTC | Bugfix for when a property has a column name different than the property name | 19 October 2012, 19:52:27 UTC |
097752c | Anthony Brummett | 17 February 2012, 22:23:11 UTC | update comment to match reality | 19 October 2012, 19:52:27 UTC |
dcb78b7 | Anthony Brummett | 17 February 2012, 22:22:47 UTC | re-use the null sub to avoid making a new one | 19 October 2012, 19:52:27 UTC |
b5a6077 | Anthony Brummett | 17 February 2012, 22:02:11 UTC | Test reading from multiple files to find matching data | 19 October 2012, 19:52:26 UTC |
ed560f3 | Anthony Brummett | 17 February 2012, 22:01:46 UTC | Add newlines to logging prints to make things more readable | 19 October 2012, 19:52:26 UTC |
841a332 | Anthony Brummett | 17 February 2012, 21:37:04 UTC | dded a test for a get() matching nothing | 19 October 2012, 19:52:26 UTC |
a49d024 | Anthony Brummett | 17 February 2012, 21:34:56 UTC | Added a test for getting multiple rows from the same file | 19 October 2012, 19:52:26 UTC |
0d727f6 | Anthony Brummett | 17 February 2012, 21:08:50 UTC | Change debugging print to match the format of the others added a colon | 19 October 2012, 19:52:26 UTC |
f305dc4 | Anthony Brummett | 17 February 2012, 21:07:07 UTC | The Filesystem data source can actually read and return data also a simple test case | 19 October 2012, 19:52:25 UTC |
f107017 | Anthony Brummett | 17 February 2012, 20:54:11 UTC | Change property names from server and sort_order to path and sorted_columns | 19 October 2012, 19:52:25 UTC |
6c813d0 | Anthony Brummett | 16 February 2012, 19:13:24 UTC | Better name for a sub | 19 October 2012, 19:52:25 UTC |
2213cea | Anthony Brummett | 16 February 2012, 18:48:02 UTC | Get things working to reolve paths when a method name is in the path spec | 19 October 2012, 19:52:25 UTC |
a677b04 | Anthony Brummett | 14 February 2012, 17:39:50 UTC | Add method resolve_file_info_for_rule_and_path_spec() which calls the var, sub and glob resolver | 19 October 2012, 19:52:25 UTC |
64bb3b6 | Anthony Brummett | 14 February 2012, 17:11:05 UTC | Need a minimal match for chars preceeding the '*' to work when there are more than one glob in the same path part | 19 October 2012, 19:52:25 UTC |
8674d91 | Anthony Brummett | 14 February 2012, 16:48:24 UTC | Refactor to move the glob position fixer up so it dosen't need to be passed in as an arg to the resolver sub | 19 October 2012, 19:52:24 UTC |
f191e30 | Anthony Brummett | 14 February 2012, 16:39:09 UTC | whitespace | 19 October 2012, 19:52:24 UTC |
f95d777 | Anthony Brummett | 14 February 2012, 16:33:56 UTC | Refactor to move common code out of if/else branches Both parts did similar things to the data. Each part of the if/else makes a subref that applies the transforms for this step and returns data for the next stage. This subref accepts a sub that fixes the string offsets in the .__glob_positions__ list to account for the differences in string length between the passed-in path spec and the resolved paths | 19 October 2012, 19:52:24 UTC |
ff3fbb1 | Anthony Brummett | 14 February 2012, 15:14:45 UTC | Update comments and remove commented-out lines | 19 October 2012, 19:52:24 UTC |
dcdf426 | Anthony Brummett | 14 February 2012, 15:11:10 UTC | The glob positions list needs to be updated when known variables are filled in | 19 October 2012, 19:52:24 UTC |
fc4b5c3 | Anthony Brummett | 14 February 2012, 15:02:46 UTC | Refactor to make the regex construction for glob matching functional instead of procedural | 19 October 2012, 19:52:23 UTC |
45ae4d5 | Anthony Brummett | 13 February 2012, 21:19:22 UTC | Allow glob wildcards hard-coded into the path spec Allow a path spec like /path/*/$name When it resolves values for the hard-coded glob, it needs to go over the glob position list for properties and change the offset since the path after globbing is likely longer than the path spec before globbing | 19 October 2012, 19:52:23 UTC |
4bf71bd | Anthony Brummett | 13 February 2012, 21:19:02 UTC | More examples of path specs | 19 October 2012, 19:52:23 UTC |
db8e9bf | Anthony Brummett | 13 February 2012, 18:47:12 UTC | Add test for properties with an in-clause | 19 October 2012, 19:52:23 UTC |
41dfabc | Anthony Brummett | 13 February 2012, 18:38:36 UTC | Added method for resolving values for properties in path spec without values in the rule In the property replacement step, it adds info about where the inserted globs (*) are. _replace_glob_with_values_in_pathname() takes that info, and figures out what the possible values are using glob() which taking care not to guess at property values for globs put in the original spec string. | 19 October 2012, 19:52:23 UTC |
ffe8815 | Anthony Brummett | 13 February 2012, 18:37:49 UTC | whitespace | 19 October 2012, 19:52:23 UTC |
a6c7aec | Anthony Brummett | 13 February 2012, 18:36:32 UTC | Change scheme for recording where we've added pathname globs Storing it as a sorted list of lists makes later processing easier | 19 October 2012, 19:52:22 UTC |
3092512 | Anthony Brummett | 13 February 2012, 18:35:53 UTC | Fix regex matching method calls in path spec | 19 October 2012, 19:52:22 UTC |
d41cd22 | Anthony Brummett | 10 February 2012, 22:20:10 UTC | First commit for UR::DataSource::Filesystem Basic replacement of property values from rule is working | 19 October 2012, 19:52:22 UTC |
bb913e1 | Nathan Nutter | 17 October 2012, 21:40:23 UTC | using default handle in closure is risky since it may get disconnected | 17 October 2012, 21:40:23 UTC |
535e2ad | Nathan Nutter | 17 October 2012, 18:23:08 UTC | disconnect dbh before fork instead of giving up after | 17 October 2012, 18:23:08 UTC |
4cf8139 | Nathan Nutter | 17 October 2012, 18:21:30 UTC | fix a couple warnings | 17 October 2012, 18:21:30 UTC |
7c44802 | Nathan Nutter | 17 October 2012, 18:20:56 UTC | base class implements methods so can is not needed | 17 October 2012, 18:20:56 UTC |
b3e41d8 | Nathan Nutter | 17 October 2012, 18:20:33 UTC | add do_after_fork_in_child and consolidate the comments | 17 October 2012, 18:20:33 UTC |
7b4f954 | Ben Oberkfell | 16 October 2012, 20:06:55 UTC | more places to swap data source ID so that postgres testing datasources work as they should | 16 October 2012, 20:06:55 UTC |
ab3689e | Ben Oberkfell | 16 October 2012, 19:22:13 UTC | fix for properly closing the db handle out after a fork. | 16 October 2012, 19:46:57 UTC |
ccf2406 | Ben Oberkfell | 16 October 2012, 19:15:25 UTC | break this out so that code in our internal postgres testing repo can override it. | 16 October 2012, 19:46:57 UTC |
da6deef | Ben Oberkfell | 16 October 2012, 19:00:25 UTC | treat null values like we do oracle | 16 October 2012, 19:46:56 UTC |
544ce61 | David Morton | 29 September 2012, 22:37:07 UTC | Remove unused option to ur show subclasses Also add check for invalid-classes. | 29 September 2012, 22:37:07 UTC |
39ea956 | Ben Oberkfell | 26 September 2012, 18:45:02 UTC | ignore case when looking for large object columns | 26 September 2012, 18:45:02 UTC |
3210d77 | Ben Oberkfell | 25 September 2012, 21:37:04 UTC | remove debug message left in | 25 September 2012, 21:37:04 UTC |
af6ff9b | Ben Oberkfell | 25 September 2012, 21:27:01 UTC | fix local variable | 25 September 2012, 21:27:01 UTC |
3588411 | Ben Oberkfell | 25 September 2012, 20:27:37 UTC | Merge branch 'master' of github.com:genome/UR | 25 September 2012, 20:27:37 UTC |
d98700e | Ben Oberkfell | 25 September 2012, 20:27:10 UTC | break out table meta gets into a separate method, so the data source name can be easily overridden for internal postgres/oracle sync testing | 25 September 2012, 20:27:10 UTC |
6ad27f5 | David Morton | 25 September 2012, 17:49:52 UTC | updated test 47b to support filtering parameters on indirect accessors which are more than one step away from the primary class | 25 September 2012, 17:49:52 UTC |