Changes for version 0.39 - 2013-01-30

  • Better support for PostgreSQL. It is now on par with Oracle. New datasource UR::DataSource::Filesystem. It obsoletes UR::DataSource::File and UR::DataSource::FileMux, and is more flexible. Classes can specify a query hint when they are used as the primary class of a get() or when they are involved in a join. BoolExprs with an or-clause now support hints and order-by correctly.. Messaging methods (error_message(), status_message(), etc) now trigger observers of the same name. This means any number of message observers can be attached at any point in the class hierarchy. Using chained delegated properties with the dot-syntax (object.deledate.prop) is accepted in more places. Better support for queries using direct SQL. Many fixes for the Boolean Expression syntax parser. Besides fixing bugs, it now supports more operators and understands 'offset' and 'limit'. Support for defining a property that is an alias for another. Fixes for remaining connected to databases after fork(). Optimization for the case where a delegation goes through an abstract class with no data source and back to the original data source. It now does one query instead of many. Improvements to the Command API documentation. Removed some deps on XML-related modules.

Documentation

ur
command-line interface to UR
Environment variables that control UR behavior
Short list of UR's documentation
Recepies for getting things working
Overview of the metadata classes in UR
UR from Ten Thousand Feet
Slides for a presenation on UR
Tips for designing an efficient schema for UR
Step-by-step guide to building a set of classes for a simple database schema
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
ur
tools to create and maintain a ur class tree

Modules

auto-generate sub-commands based on other classes
base class for modules implementing the command pattern
base class for modules implementing the command pattern
UR
rich declarative transactional objects
a "where clause" for objects
a UR::BoolExpr minus specific values
a rule which is true if ALL the underlying conditions are true
an "and" or "or" rule
a rule which is true if ANY of the underlying conditions are true
implements logic for rules with a logic_type of "PropertyComparison"
evaluates to true if the property's value is false
perform a greater than or equal test
perform a Perl regular expression match
perform a negated In comparison
perform a negated SQL-ish like test
Evaluates to true if the property's value is true
non-OO module to collect utility functions used by the BoolExpr modules
Manage the current state of the application
The base context used when no special base context is specified
Track closures used to fabricate objects from data sources
Impliments a generic interface to the current application.
API for software transactions
methods for interacting with a database.
a database report interface
manage the the relationship between objects and a specific storage system
Parent class for data sources using DBD::CSV
Parent class for file-based data sources
Parent class for datasources which can multiplex many files together
Get and save objects to delimited text files
Data source for the MetaDB
MySQL specific subclass of UR::DataSource::RDBMS
Oracle specific subclass of UR::DataSource::RDBMS
PostgreSQL specific subclass of UR::DataSource::RDBMS
Abstract base class for RDBMS-type data sources
metadata about a data source's bitmap indexes
Parent class for all MetaDB-sourced classes
metadata about a data source's foreign keys
metadata about a data source's foreign keys
metadata about a data source's primary keys
Object-oriented class for RDBMS table objects.
View class for RDBMS table objects
metadata about a data source's table's columns
View class for RDBMS column objects
metadata about a data source's unique constraints
base class for datasources using the SQLite3 RDBMS
Controls for debugging behavior
Represents an instance of a no-longer-existent object
methods to allow clean application exits.
Methods common to all UR classes and object instances.
a Module::Build subclass with UR extensions
manage dynamic configuration of modules.
UR hooks into Class::Autouse
Manage collections of packages and classes
Top-level Command module for the UR namespace commands
View class for metadata via the browser namespace command
transactional, queryable, process-independent entities
Base class for fetching objects and then performing a function on/with them.
Fetches and lists objects in different styles.
Fetches and lists objects in different styles.
Abstract class for representing deleted objects not yet committed
Indexing system for retrieving objects by non-id properties
API for iterating through objects matching a rule
Class representing metadata about a class property
View class for UR::Object::Property
View class for UR::Object::Property
View class for UR::Object::Property
Transitory attribute tags for a UR::Object at a given time.
a meta-class for any class or primitive type
Helper module for UR::Object::Type responsible for creating accessors for properties
Implements a calculation accessor which multiplies the values of its properties
Implements a calculation accessor which sums the values of its properties
Class definition syntax
Helper module for UR::Object::Type responsible for writing Perl modules
View class for class metaobjects
View class for class metaobjects
a base class for "views" of UR::Objects
a specification for one aspect of a view
Gtk adaptor for object views
Gtk2 adaptor for object views
represent object state in HTML format
object views in text format
represent object state in XML format
base class for views which use XSL on an XML view to generate content
represent object state in HTML format
Declaration of Text as a View toolkit type
restores changes removed in UR version 0.01
restores changes removed in UR version 0.04
bind callbacks to object changes
A self-contained JSON-RPC server for UR namespaces
Base class for modules implementing RPC executers
Serializable object appropriate for sending RPC messages
Class for implementing RPC servers
Abstract class for implementing singleton objects
Collection of utility subroutines and methods
auto "use lib" when a module is in the tree of the PWD

Provides

in lib/Command.pm
in lib/Command/Shell.pm
in lib/Command/SubCommandFactory.pm
in lib/Command/Test.pm
in lib/Command/Test/Echo.pm
in lib/Command/Test/Tree1.pm
in lib/Command/Test/Tree1/Echo1.pm
in lib/Command/Test/Tree1/Echo2.pm
in lib/Devel/callcount.pm
in lib/UR/Namespace/Command/Test/Run.pm
in lib/UR/Namespace/Command/Test/Run.pm
in lib/UR/Namespace/Command/Test/Run.pm
in lib/UR/Namespace/Command/Test/Run.pm
in lib/UR/BoolExpr/BxParser.pm
in lib/UR/BoolExpr/BxParser.pm
in lib/UR/Change.pm
in lib/UR/Context/LoadingIterator.pm
in lib/UR/Context/Root.pm
in lib/UR/DBI.pm
in lib/UR/DBI.pm
in lib/UR/DataSource/Code.pm
in lib/UR/DataSource/Default.pm
in lib/UR/DataSource/QueryPlan.pm
in lib/UR/DataSource/ValueDomain.pm
in lib/UR/Doc/Pod2Html.pm
in lib/UR/Doc/Section.pm
in lib/UR/Doc/Writer.pm
in lib/UR/Doc/Writer/Html.pm
in lib/UR/Doc/Writer/Pod.pm
in lib/UR/Env/UR_COMMAND_DUMP_STATUS_MESSAGES.pm
in lib/UR/Env/UR_CONTEXT_BASE.pm
in lib/UR/Env/UR_CONTEXT_CACHE_SIZE_HIGHWATER.pm
in lib/UR/Env/UR_CONTEXT_CACHE_SIZE_LOWWATER.pm
in lib/UR/Env/UR_USED_LIBS.pm
in lib/UR/Env/UR_CONTEXT_MONITOR_QUERY.pm
in lib/UR/Env/UR_CONTEXT_ROOT.pm
in lib/UR/Env/UR_DBI_DUMP_STACK_ON_CONNECT.pm
in lib/UR/Env/UR_DBI_EXPLAIN_SQL_CALLSTACK.pm
in lib/UR/Env/UR_DBI_EXPLAIN_SQL_IF.pm
in lib/UR/Env/UR_DBI_EXPLAIN_SQL_MATCH.pm
in lib/UR/Env/UR_DBI_EXPLAIN_SQL_SLOW.pm
in lib/UR/Env/UR_DBI_MONITOR_DML.pm
in lib/UR/Env/UR_DBI_MONITOR_EVERY_FETCH.pm
in lib/UR/Env/UR_DBI_MONITOR_SQL.pm
in lib/UR/Env/UR_DBI_NO_COMMIT.pm
in lib/UR/Env/UR_DBI_SUMMARIZE_SQL.pm
in lib/UR/Env/UR_DEBUG_OBJECT_PRUNING.pm
in lib/UR/Env/UR_DEBUG_OBJECT_RELEASE.pm
in lib/UR/Env/UR_IGNORE.pm
in lib/UR/Env/UR_NO_REQUIRE_USER_VERIFY.pm
in lib/UR/Env/UR_NR_CPU.pm
in lib/UR/Env/UR_RUN_LONG_TESTS.pm
in lib/UR/Env/UR_STACK_DUMP_ON_DIE.pm
in lib/UR/Env/UR_STACK_DUMP_ON_WARN.pm
in lib/UR/Env/UR_TEST_FILLDB.pm
in lib/UR/Env/UR_TEST_QUIET.pm
in lib/UR/Env/UR_USED_MODS.pm
in lib/UR/Env/UR_USE_ANY.pm
in lib/UR/Env/UR_USE_DUMMY_AUTOGENERATED_IDS.pm
in lib/UR/ObjectDeprecated.pm
in lib/UR/Namespace/Command.pm
in lib/UR/Namespace/Command/Define.pm
in lib/UR/Namespace/Command/Define/Class.pm
in lib/UR/Namespace/Command/Define/Datasource.pm
in lib/UR/Namespace/Command/Define/Datasource/File.pm
in lib/UR/Namespace/Command/Define/Datasource/Mysql.pm
in lib/UR/Namespace/Command/Define/Datasource/Oracle.pm
in lib/UR/Namespace/Command/Define/Datasource/Pg.pm
in lib/UR/Namespace/Command/Define/Datasource/Rdbms.pm
in lib/UR/Namespace/Command/Define/Datasource/RdbmsWithAuth.pm
in lib/UR/Namespace/Command/Define/Datasource/Sqlite.pm
in lib/UR/Namespace/Command/Define/Db.pm
in lib/UR/Namespace/Command/Define/Namespace.pm
in lib/UR/Namespace/Command/Init.pm
in lib/UR/Namespace/Command/List.pm
in lib/UR/Namespace/Command/List/Classes.pm
in lib/UR/Namespace/Command/List/Modules.pm
in lib/UR/Namespace/Command/List/Objects.pm
in lib/UR/Namespace/Command/Old.pm
in lib/UR/Namespace/Command/Old/DiffRewrite.pm
in lib/UR/Namespace/Command/Old/DiffUpdate.pm
in lib/UR/Namespace/Command/Old/ExportDbicClasses.pm
in lib/UR/Namespace/Command/Old/Info.pm
in lib/UR/Namespace/Command/Old/Redescribe.pm
in lib/UR/Namespace/Command/RunsOnModulesInTree.pm
in lib/UR/Namespace/Command/Show.pm
in lib/UR/Namespace/Command/Show/Properties.pm
in lib/UR/Namespace/Command/Show/Schema.pm
in lib/UR/Namespace/Command/Show/Subclasses.pm
in lib/UR/Namespace/Command/Sys.pm
in lib/UR/Namespace/Command/Sys/ClassBrowser.pm
in lib/UR/Namespace/Command/Test.pm
in lib/UR/Namespace/Command/Test/Callcount.pm
in lib/UR/Namespace/Command/Test/Callcount/List.pm
in lib/UR/Namespace/Command/Test/Compile.pm
in lib/UR/Namespace/Command/Test/Eval.pm
in lib/UR/Namespace/Command/Test/Run.pm
in lib/UR/Namespace/Command/Test/TrackObjectRelease.pm
in lib/UR/Namespace/Command/Test/Use.pm
in lib/UR/Namespace/Command/Test/Window.pm
in lib/UR/Namespace/Command/Test/Window.pm
in lib/UR/Namespace/Command/Update.pm
in lib/UR/Namespace/Command/Update/ClassDiagram.pm
in lib/UR/Namespace/Command/Update/ClassesFromDb.pm
in lib/UR/Namespace/Command/Update/Doc.pm
in lib/UR/Namespace/Command/Update/Pod.pm
in lib/UR/Namespace/Command/Update/RenameClass.pm
in lib/UR/Namespace/Command/Update/RewriteClassHeader.pm
in lib/UR/Namespace/Command/Update/SchemaDiagram.pm
in lib/UR/Namespace/Command/Update/TabCompletionSpec.pm
in lib/UR/Namespace/View/SchemaBrowser/CgiApp/Base.pm
in lib/UR/Namespace/View/SchemaBrowser/CgiApp/Class.pm
in lib/UR/Namespace/View/SchemaBrowser/CgiApp/File.pm
in lib/UR/Namespace/View/SchemaBrowser/CgiApp/Index.pm
in lib/UR/Namespace/View/SchemaBrowser/CgiApp/Schema.pm
in lib/UR/Object/Accessorized.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Command/List/Style.pm
in lib/UR/Object/Join.pm
in lib/UR/Object/Set.pm
in lib/UR/Object/Set/View/Default/Html.pm
in lib/UR/Object/Set/View/Default/Json.pm
in lib/UR/Object/Set/View/Default/Text.pm
in lib/UR/Object/Set/View/Default/Xml.pm
in lib/UR/Object/Type/View/AvailableViews/Json.pm
in lib/UR/Object/Type/View/AvailableViews/Xml.pm
in lib/UR/Object/Value.pm
in lib/UR/Object/View/Default/Json.pm
in lib/UR/Object/View/Lister/Text.pm
in lib/UR/Service/RPC/TcpConnectionListener.pm
in lib/UR/Test.pm
in lib/UR/Value.pm
in lib/UR/Value/ARRAY.pm
in lib/UR/Value/Blob.pm
in lib/UR/Value/Boolean.pm
in lib/UR/Value/Boolean/View/Default/Text.pm
in lib/UR/Value/CODE.pm
in lib/UR/Value/CSV.pm
in lib/UR/Value/DateTime.pm
in lib/UR/Value/Decimal.pm
in lib/UR/Value/DirectoryPath.pm
in lib/UR/Value/FOF.pm
in lib/UR/Value/FilePath.pm
in lib/UR/Value/FilesystemPath.pm
in lib/UR/Value/Float.pm
in lib/UR/Value/GLOB.pm
in lib/UR/Value/HASH.pm
in lib/UR/Value/Integer.pm
in lib/UR/Value/Iterator.pm
in lib/UR/Value/Number.pm
in lib/UR/Value/PerlReference.pm
in lib/UR/Value/REF.pm
in lib/UR/Value/SCALAR.pm
in lib/UR/Value/Set.pm
in lib/UR/Value/SloppyPrimitive.pm
in lib/UR/Value/String.pm
in lib/UR/Value/Text.pm
in lib/UR/Value/Timestamp.pm
in lib/UR/Value/URL.pm
in lib/UR/Value/View/Default/Html.pm
in lib/UR/Value/View/Default/Json.pm
in lib/UR/Value/View/Default/Text.pm
in lib/UR/Value/View/Default/Xml.pm
in lib/UR/Vocabulary.pm
in lib/UR/Object/Type/Initializer.pm