January 5, 2012, 1:10 pm
UR 0.35 sports several bug fixes in the query engine. The -offset, -limit and -page options allow selecting subsets of data work more reliable ways.
Set objects have bug fixes too, in cases where the description of the set included calculated properties not stored directly in the database.
Other bug fixes for cases when the same table is traversed in different joins, with mutually exclusive filtering.
July 4, 2011, 3:20 pm
The new UR release has lots of bug fixes for Postgres and MySQL and SQLite to better handle schema introspection.
Developers can now split a namespace across different directory trees and the “ur” commands will recognize the whole correctly when working on any part.
Software transactional memory now correctly does the same validity checks as raw database transactions
The query engine how accepts dot-separated chains of properties for ad-hoc joins, instead of requiring that wrapper properties be made on the class in question with via/to.
The set class has been revamped to do min, max, count, and sum optimally regardless of whether the set members are currently in memory or not. The relaying from one set definition to another is now correctly lazy as well.
Updates to the concurrency issue detection logic now detect deletions from the database of data previously cached by the application and handle those changes smoothly.
The view classes now support custom views for primitive data types.
A new environment variable: UR_DBI_SUMMARIZE_SQL aggregates queries across the running of an application and summarizes execution counts. This allows developers to use hints and pre-caching of data to pull the data used by complex views in an optimal way.
March 13, 2011, 11:35 am
UR’s query engine now handles the N+1 problem in additional difficult cases. Using hints with has-many relationships while iterating now work as efficiently as the other cases.
January 23, 2011, 3:42 pm
Lots of iterations over the past few weeks:
Compile time for UR down to < .5s on our test machines (down from a painful 1s):
- .465 on my MacBook
- .431 on a Linux server
Object creation is at around 10k/s for a 5 property object. This is about 15% faster than Moose, and as the number of properties increases the gap widens.
When loading objects from a database with a single expression, the rate increases 6-8x.
The distribution now includes a benchmark script for the curious, and for developers doing tuning.
January 1, 2011, 9:31 pm
We revamped the “ur” command-line interface to be simpler and cleaner.
Projects can now be started with a single command, including database schema interrogation, and autogen of initial classes:
$ ur init MyApp dbi:XXXXXXX
Lots of internals were streamlined in this release as well, with more to come…
December 10, 2010, 9:26 am
UR version 0.18 was uploaded to CPAN this morning. This is primarily a bugfix release.
From the Change log:
- Bugfix for queries involving subclasses without tables
- Bugfixes for queries with the ‘in’ and ‘not in’ operators
- Object cache indexing sped up by replacing regexes with direct string comparisons
November 10, 2010, 4:40 pm
I’ve made another release of UR to CPAN today. Version 0.17 should be available now, and there are several important bugfixes since the last announcement.
From the Change log:
0.17 on 2010-11-10
- Fixed bug with default datasources dumping debug info during queries.
- Deprecated old parts of the UR::Object API
- Bugfixes for MySQL data sources with handling of between and like operators, and table/column name case sensitivity
- MySQL data sources will complain if the ‘lower_case_table_names’ setting is not set to 1
- Bugfixes for FileMux data sources to return objects from iterators in correct sorted order
- File data sources remember their file offsets more often to improve seeking
- Bugfixes for handling is_many values passed in during create()
- New class for JSON-formatted Set views
- More consistent behavior during evaluation of BoolExprs with is_many values and undef/NULL values
- Bugfixes for handling observers during software transaction commit and rollback
- Addition of a new UR::Change type (external_change) to track non-UR entities that need undo-ing during a rollback
0.16 on 2010-09-27
- File datasources build an on-the-fly index to improve its ability to seek within the file
- Initial support for classes to supply custom logic for loading data
- Compile-time speed improvements
- Bug fixes for SQL generation with indirect properties, and the object cache pruner
August 4, 2010, 12:24 pm
It’s been almost 11 months since the last post and CPAN release. Version 0.15 is now available from CPAN. From the changelog…
Continue reading ‘New UR release 0.15’ »
September 11, 2009, 3:05 pm
Version 0.12 was uploaded to CPAN this morning and should show up on mirrors shortly.
Here’s the major items from the changelog:
- ‘ur test run’ can now run tests in parallel and can submit tests as jobs to LSF
- Command modules now have support for Getopt::Complete for bash tab-completion
- Bugfixes related to saving objects to File data sources.
- Several more fixes for merging between database and in-memory objects.
- Property names beginning with an underscore are now handled properly during rule and object creation
September 9, 2009, 10:19 am
I pushed up an essentially new repository to Github that contains the checkin history going back almost 2 years from our SVN repository. The complete history goes back further than that, but this at least picks up from the point UR was moved from a development branch into the trunk.
The old ‘master’ git branch has been renamed ‘old-master’, and there are more branches containing snapshots of the CPAN releases.