public function testApplyLimitDuplicateColumnNameWithColumn() { Propel::getServiceContainer()->setAdapter('oracle', new OracleAdapter()); $c = new Criteria(); $c->setDbName('oracle'); BookTableMap::addSelectColumns($c); AuthorTableMap::addSelectColumns($c); $c->addAsColumn('BOOK_PRICE', BookTableMap::COL_PRICE); $c->setLimit(1); $params = []; $asColumns = $c->getAsColumns(); $sql = $c->createSelectSql($params); $this->assertEquals('SELECT B.* FROM (SELECT A.*, rownum AS PROPEL_ROWNUM FROM (SELECT book.id AS ORA_COL_ALIAS_0, book.title AS ORA_COL_ALIAS_1, book.isbn AS ORA_COL_ALIAS_2, book.price AS ORA_COL_ALIAS_3, book.publisher_id AS ORA_COL_ALIAS_4, book.author_id AS ORA_COL_ALIAS_5, author.id AS ORA_COL_ALIAS_6, author.first_name AS ORA_COL_ALIAS_7, author.last_name AS ORA_COL_ALIAS_8, author.email AS ORA_COL_ALIAS_9, author.age AS ORA_COL_ALIAS_10, book.price AS BOOK_PRICE FROM book, author) A ) B WHERE B.PROPEL_ROWNUM <= 1', $sql, 'applyLimit() creates a subselect with aliased column names when a duplicate column name is found'); $this->assertEquals($asColumns, $c->getAsColumns(), 'createSelectSql supplementary add alias column'); }
public function testApplyLimitDuplicateColumnNameWithColumn() { Propel::getServiceContainer()->setAdapter('oracle', new OracleAdapter()); $c = new Criteria(); $c->setDbName('oracle'); BookTableMap::addSelectColumns($c); AuthorTableMap::addSelectColumns($c); $c->addAsColumn('BOOK_PRICE', BookTableMap::PRICE); $c->setLimit(1); $params = array(); $asColumns = $c->getAsColumns(); $sql = $c->createSelectSql($params); $this->assertEquals('SELECT B.* FROM (SELECT A.*, rownum AS PROPEL_ROWNUM FROM (SELECT book.ID AS ORA_COL_ALIAS_0, book.TITLE AS ORA_COL_ALIAS_1, book.ISBN AS ORA_COL_ALIAS_2, book.PRICE AS ORA_COL_ALIAS_3, book.PUBLISHER_ID AS ORA_COL_ALIAS_4, book.AUTHOR_ID AS ORA_COL_ALIAS_5, author.ID AS ORA_COL_ALIAS_6, author.FIRST_NAME AS ORA_COL_ALIAS_7, author.LAST_NAME AS ORA_COL_ALIAS_8, author.EMAIL AS ORA_COL_ALIAS_9, author.AGE AS ORA_COL_ALIAS_10, book.PRICE AS BOOK_PRICE FROM book, author) A ) B WHERE B.PROPEL_ROWNUM <= 1', $sql, 'applyLimit() creates a subselect with aliased column names when a duplicate column name is found'); $this->assertEquals($asColumns, $c->getAsColumns(), 'createSelectSql supplementary add alias column'); }
public function testWithOneToManyAddsSelectColumns() { $c = new TestableModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Author'); AuthorTableMap::addSelectColumns($c); $c->leftJoin('Propel\\Tests\\Bookstore\\Author.Book'); $c->with('Book'); $expectedColumns = array(AuthorTableMap::COL_ID, AuthorTableMap::COL_FIRST_NAME, AuthorTableMap::COL_LAST_NAME, AuthorTableMap::COL_EMAIL, AuthorTableMap::COL_AGE, BookTableMap::COL_ID, BookTableMap::COL_TITLE, BookTableMap::COL_ISBN, BookTableMap::COL_PRICE, BookTableMap::COL_PUBLISHER_ID, BookTableMap::COL_AUTHOR_ID); $this->assertEquals($expectedColumns, $c->getSelectColumns(), 'with() adds the columns of the related table even in a one-to-many relationship'); }