CC-3174 : showbuilder

change columns sample rate and bitrate to be integers so they sort properly in the library.
This commit is contained in:
Naomi Aro 2012-02-27 12:07:46 +01:00
parent 73a91e6982
commit 36cf8ded18
6 changed files with 53 additions and 35 deletions

View file

@ -592,7 +592,7 @@ class Application_Model_StoredFile {
$fileSelect[] = $key;
}
//need to cast certain data as ints for the union to search on.
else if (in_array($key, array("track_number"))){
else if (in_array($key, array("track_number", "bit_rate", "sample_rate"))){
$plSelect[] = "NULL::int AS ".$key;
$fileSelect[] = $key;
}

View file

@ -54,8 +54,8 @@ class CcFilesTableMap extends TableMap {
$this->addColumn('MD5', 'DbMd5', 'CHAR', false, 32, null);
$this->addColumn('TRACK_TITLE', 'DbTrackTitle', 'VARCHAR', false, 512, null);
$this->addColumn('ARTIST_NAME', 'DbArtistName', 'VARCHAR', false, 512, null);
$this->addColumn('BIT_RATE', 'DbBitRate', 'VARCHAR', false, 32, null);
$this->addColumn('SAMPLE_RATE', 'DbSampleRate', 'VARCHAR', false, 32, null);
$this->addColumn('BIT_RATE', 'DbBitRate', 'INTEGER', false, null, null);
$this->addColumn('SAMPLE_RATE', 'DbSampleRate', 'INTEGER', false, null, null);
$this->addColumn('FORMAT', 'DbFormat', 'VARCHAR', false, 128, null);
$this->addColumn('LENGTH', 'DbLength', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('ALBUM_TITLE', 'DbAlbumTitle', 'VARCHAR', false, 512, null);

View file

@ -128,13 +128,13 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
/**
* The value for the bit_rate field.
* @var string
* @var int
*/
protected $bit_rate;
/**
* The value for the sample_rate field.
* @var string
* @var int
*/
protected $sample_rate;
@ -703,7 +703,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
/**
* Get the [bit_rate] column value.
*
* @return string
* @return int
*/
public function getDbBitRate()
{
@ -713,7 +713,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
/**
* Get the [sample_rate] column value.
*
* @return string
* @return int
*/
public function getDbSampleRate()
{
@ -1578,13 +1578,13 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
/**
* Set the value of [bit_rate] column.
*
* @param string $v new value
* @param int $v new value
* @return CcFiles The current object (for fluent API support)
*/
public function setDbBitRate($v)
{
if ($v !== null) {
$v = (string) $v;
$v = (int) $v;
}
if ($this->bit_rate !== $v) {
@ -1598,13 +1598,13 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
/**
* Set the value of [sample_rate] column.
*
* @param string $v new value
* @param int $v new value
* @return CcFiles The current object (for fluent API support)
*/
public function setDbSampleRate($v)
{
if ($v !== null) {
$v = (string) $v;
$v = (int) $v;
}
if ($this->sample_rate !== $v) {
@ -2575,8 +2575,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->md5 = ($row[$startcol + 13] !== null) ? (string) $row[$startcol + 13] : null;
$this->track_title = ($row[$startcol + 14] !== null) ? (string) $row[$startcol + 14] : null;
$this->artist_name = ($row[$startcol + 15] !== null) ? (string) $row[$startcol + 15] : null;
$this->bit_rate = ($row[$startcol + 16] !== null) ? (string) $row[$startcol + 16] : null;
$this->sample_rate = ($row[$startcol + 17] !== null) ? (string) $row[$startcol + 17] : null;
$this->bit_rate = ($row[$startcol + 16] !== null) ? (int) $row[$startcol + 16] : null;
$this->sample_rate = ($row[$startcol + 17] !== null) ? (int) $row[$startcol + 17] : null;
$this->format = ($row[$startcol + 18] !== null) ? (string) $row[$startcol + 18] : null;
$this->length = ($row[$startcol + 19] !== null) ? (string) $row[$startcol + 19] : null;
$this->album_title = ($row[$startcol + 20] !== null) ? (string) $row[$startcol + 20] : null;

View file

@ -175,8 +175,8 @@
* @method CcFiles findOneByDbMd5(string $md5) Return the first CcFiles filtered by the md5 column
* @method CcFiles findOneByDbTrackTitle(string $track_title) Return the first CcFiles filtered by the track_title column
* @method CcFiles findOneByDbArtistName(string $artist_name) Return the first CcFiles filtered by the artist_name column
* @method CcFiles findOneByDbBitRate(string $bit_rate) Return the first CcFiles filtered by the bit_rate column
* @method CcFiles findOneByDbSampleRate(string $sample_rate) Return the first CcFiles filtered by the sample_rate column
* @method CcFiles findOneByDbBitRate(int $bit_rate) Return the first CcFiles filtered by the bit_rate column
* @method CcFiles findOneByDbSampleRate(int $sample_rate) Return the first CcFiles filtered by the sample_rate column
* @method CcFiles findOneByDbFormat(string $format) Return the first CcFiles filtered by the format column
* @method CcFiles findOneByDbLength(string $length) Return the first CcFiles filtered by the length column
* @method CcFiles findOneByDbAlbumTitle(string $album_title) Return the first CcFiles filtered by the album_title column
@ -238,8 +238,8 @@
* @method array findByDbMd5(string $md5) Return CcFiles objects filtered by the md5 column
* @method array findByDbTrackTitle(string $track_title) Return CcFiles objects filtered by the track_title column
* @method array findByDbArtistName(string $artist_name) Return CcFiles objects filtered by the artist_name column
* @method array findByDbBitRate(string $bit_rate) Return CcFiles objects filtered by the bit_rate column
* @method array findByDbSampleRate(string $sample_rate) Return CcFiles objects filtered by the sample_rate column
* @method array findByDbBitRate(int $bit_rate) Return CcFiles objects filtered by the bit_rate column
* @method array findByDbSampleRate(int $sample_rate) Return CcFiles objects filtered by the sample_rate column
* @method array findByDbFormat(string $format) Return CcFiles objects filtered by the format column
* @method array findByDbLength(string $length) Return CcFiles objects filtered by the length column
* @method array findByDbAlbumTitle(string $album_title) Return CcFiles objects filtered by the album_title column
@ -797,20 +797,29 @@ abstract class BaseCcFilesQuery extends ModelCriteria
/**
* Filter the query on the bit_rate column
*
* @param string $dbBitRate The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param int|array $dbBitRate The value to use as filter.
* Accepts an associative array('min' => $minValue, 'max' => $maxValue)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return CcFilesQuery The current query, for fluid interface
*/
public function filterByDbBitRate($dbBitRate = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($dbBitRate)) {
$useMinMax = false;
if (isset($dbBitRate['min'])) {
$this->addUsingAlias(CcFilesPeer::BIT_RATE, $dbBitRate['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($dbBitRate['max'])) {
$this->addUsingAlias(CcFilesPeer::BIT_RATE, $dbBitRate['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $dbBitRate)) {
$dbBitRate = str_replace('*', '%', $dbBitRate);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CcFilesPeer::BIT_RATE, $dbBitRate, $comparison);
@ -819,20 +828,29 @@ abstract class BaseCcFilesQuery extends ModelCriteria
/**
* Filter the query on the sample_rate column
*
* @param string $dbSampleRate The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param int|array $dbSampleRate The value to use as filter.
* Accepts an associative array('min' => $minValue, 'max' => $maxValue)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return CcFilesQuery The current query, for fluid interface
*/
public function filterByDbSampleRate($dbSampleRate = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($dbSampleRate)) {
$useMinMax = false;
if (isset($dbSampleRate['min'])) {
$this->addUsingAlias(CcFilesPeer::SAMPLE_RATE, $dbSampleRate['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($dbSampleRate['max'])) {
$this->addUsingAlias(CcFilesPeer::SAMPLE_RATE, $dbSampleRate['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $dbSampleRate)) {
$dbSampleRate = str_replace('*', '%', $dbSampleRate);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CcFilesPeer::SAMPLE_RATE, $dbSampleRate, $comparison);

View file

@ -51,8 +51,8 @@
<column name="md5" phpName="DbMd5" type="CHAR" size="32" required="false"/>
<column name="track_title" phpName="DbTrackTitle" type="VARCHAR" size="512" required="false"/>
<column name="artist_name" phpName="DbArtistName" type="VARCHAR" size="512" required="false"/>
<column name="bit_rate" phpName="DbBitRate" type="VARCHAR" size="32" required="false"/>
<column name="sample_rate" phpName="DbSampleRate" type="VARCHAR" size="32" required="false"/>
<column name="bit_rate" phpName="DbBitRate" type="INTEGER" required="false"/>
<column name="sample_rate" phpName="DbSampleRate" type="INTEGER" required="false"/>
<column name="format" phpName="DbFormat" type="VARCHAR" size="128" required="false"/>
<column name="length" phpName="DbLength" type="VARCHAR" sqlType="interval" defaultValue="00:00:00" required="false"/>
<column name="album_title" phpName="DbAlbumTitle" type="VARCHAR" size="512" required="false"/>

View file

@ -77,8 +77,8 @@ CREATE TABLE "cc_files"
"md5" CHAR(32),
"track_title" VARCHAR(512),
"artist_name" VARCHAR(512),
"bit_rate" VARCHAR(32),
"sample_rate" VARCHAR(32),
"bit_rate" INTEGER,
"sample_rate" INTEGER,
"format" VARCHAR(128),
"length" interval default '00:00:00',
"album_title" VARCHAR(512),