Skip to content
Jonathan Amend edited this page Jul 16, 2014 · 5 revisions

0.10.03e6606faf

July 15, 2014
  • Return all dates/datetimes/timestamps from database as UNIX timestamps
  • Add support for transactions with Database methods startTransaction, commit, rollback, isInTransaction
  • More unit test coverage
  • Add MySQL unit tests

0.9.eec61a064c

May 18, 2014
  • Add mechanism to consume record set as an iterator/stream without having to load the entire record set in advance
  • Add Record::getRawPropertyValue($name) to allow bypassing retrieval of related records
  • Generate multi-line and indented SQL
  • More unit test coverage
  • Added travis support for automated unit testing

0.8.2a9949d

May 08, 2014
  • Add RecordSet::sql($sql) method to load ResultSet from raw SQL query
  • Add RecordSet::toArray() method to its records as associative arrays
  • Add RecordSet::last() to compliment first()
  • Add Composer support and submitted to packagist as jamend/selective-orm
  • Support multi-column relationships in RecordSet::with() for many-to-one
  • Always use joins/with code branch instead of old fetchObject() code in Driver\PDO::getRecords(), since performane testing shows it is equally fast and uses less memory
  • Optimization: avoid re-creating same record more than once for right side of many-to-one relationship
  • Optimization: Set the mapped properties of related records to point back to the base record
  • Fix enumerating Microsoft SQL Server relationships
  • Fix using RecordSet::with() and limit() together in PDO\Sqlsrv driver
  • Fix switched left/right side columns in RecordSet::with()
  • Fix parsing MySQL column default value, timestamp default value, and multiple-column primary keys

0.7.7d111fa

May 03, 2014
  • New RecordSet::with($tableName) method to pre-load related table's data into result set
  • Cache table instances
  • Add simple profiling to Driver
  • Pass record values to constructor instead of setting values after creating Record instance
  • Tests: Update unit tests for fully-qualified column names

0.6.771a0d7

Apr 28, 2014
  • Added class mappers to support using classes other than Table/Record
  • Added Column ordinal property; Use table-qualified identifiers in Column::getColumnSQLExpression()
  • Use select statement to parse MySQL default values and enum/set options

0.5.7044861

Apr 06, 2014
  • New Record::toArray() method to get column data as an associative array
  • New RecordSet::__isset method to check if record exists
  • Fix mixed case table names in MySQL being referenced lower-case by constraint definition (http://bugs.mysql.com/bug.php?id=6555)
  • Fix timestamps in MySQL driver
  • Tests: Basic SQLite driver unit tests
  • Code/comment cleanup & fix line endings

0.4.2c72a74

Mar 17, 2014
  • Split DB class into Database and Driver; Move all driver-specific code to Driver implementation
  • Add Microsoft SQL Server support - new PDO\Sqlsrv driver
  • Add SQLite support - new PDO\SQLite driver
  • Replace RecordSet->query array with Query object
  • Implement RecordSet->limit($offset, $count) and RecordSet->orderBy($column, $direction)
  • Set newly-generated value for auto-incrementing columns when inserting new records
  • Fix RecordSet->where() creating a having clause instead of a where clause
  • Fix foreign keys that support multiple columns
  • Fix evaluating default column values in PDO\Sqlsrv since they are SQL expressions

0.3.71f7ddb

Mar 14, 2014
  • Standardize code style to PSR-2
  • Fix creating record after adding foreign key feature
  • Tests: Replace TableTest::testGetKeys with TableTest::testGetPrimaryKeys
  • Tests: Fix mock data for table prefixes

0.3.31f2325

Mar 09, 2014
  • Add support for many-to-one relationships ($record->{[column name with foreign key]} yields related record)
  • Normalize dates/datetimes to unix timestamps and sets to integers
  • PDOMySQL: Fix parsing column info when not null/length is not specified
  • Rename Record::__meta to _meta, since __* should stay reserved for PHP
  • Tests: Fix Issue #1 unit tests after implementing relationships/parsing table structure from "SHOW CREATE TABLE"

0.2.208c6cb

Mar 04, 2014
  • Introduce relationship/foreign key mapping with one-to-many Record::getRelatedTable($tableName) (and respective magic getter)
  • Add prefix support for table names to DB
  • Replace Column makeshift public properties with getters/setters
  • Fix enumerating set/enum options
  • Fix related tables with prefixes
  • Code cleanup

0.1.b36cac4

Feb 28, 2014
  • Initial unit tests

0.1.6fc5b63

Feb 22, 2014
  • Switch to MIT license
  • Split DB class into abstract DB and implementation classes (with initial PDOMySQL implementation)
  • Replace manual SQL quoting with parameter binding
  • Column class to replace column info arrays
  • Fix reference to internal records
  • Rename namespace from Selective\ORM to jamend\Selective

0.1.e2030be

Aug 28, 2013

Initial commit

  • Connect to database
  • Load Table objects by table name
  • Enumerate table rows as Record objects in a RecordSet
  • Create, update, and delete Records