-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
Jonathan Amend edited this page Jul 16, 2014
·
5 revisions
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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"
- 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
- Initial unit tests
- 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
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