public static function resolveSortAttributeColumnName(RedBeanModelAttributeToDataProviderAdapter $modelAttributeToDataProviderAdapter, RedBeanModelJoinTablesQueryAdapter $joinTablesAdapter) { if ($modelAttributeToDataProviderAdapter->isRelation()) { if (!$modelAttributeToDataProviderAdapter->hasRelatedAttribute()) { throw new NotSupportedException(); } assert('$modelAttributeToDataProviderAdapter->getRelationType() != RedBeanModel::MANY_MANY'); $onTableAliasName = self::resolveShouldAddFromTableAndGetAliasName($modelAttributeToDataProviderAdapter, $joinTablesAdapter); $tableAliasName = self::resolveJoinsForRelatedAttributeAndGetRelationAttributeTableAliasName($modelAttributeToDataProviderAdapter, $joinTablesAdapter, $onTableAliasName); $resolvedSortColumnName = $modelAttributeToDataProviderAdapter->getRelatedAttributeColumnName(); } else { $tableAliasName = self::resolveShouldAddFromTableAndGetAliasName($modelAttributeToDataProviderAdapter, $joinTablesAdapter); $resolvedSortColumnName = $modelAttributeToDataProviderAdapter->getColumnName(); } $sort = DatabaseCompatibilityUtil::quoteString($tableAliasName); $sort .= '.'; $sort .= DatabaseCompatibilityUtil::quoteString($resolvedSortColumnName); return $sort; }
protected static function findBean($userId, $moduleName, $key) { assert('$userId != null && is_int($userId)'); assert('is_string($moduleName)'); assert('is_string($key)'); assert('$moduleName != ""'); assert('$key != ""'); $bean = R::findOne(UserConfiguration::getTableName(), 'userId = ? and moduleName = ? and ' . DatabaseCompatibilityUtil::quoteString('key') . ' = ?', array($userId, $moduleName, $key)); assert('$bean === false || $bean instanceof RedBean_OODBBean'); return $bean; }
public function testQuoteString() { $string = 'tempColumn'; if (RedBeanDatabase::getDatabaseType() == 'pgsql') { $quotedString = '"tempColumn"'; } else { $quotedString = '`tempColumn`'; } $this->assertEquals($quotedString, DatabaseCompatibilityUtil::quoteString($string)); }
/** * Update an email message's folder and save it using SQL * @param EmailMessage $emailMessage * @param EmailFolder $folder * @throws NotSupportedException */ protected static function updateFolderForEmailMessageWithSQL(EmailMessage &$emailMessage, EmailFolder $folder) { // TODO: @Shoaibi/@Jason: Critical0: This fails CampaignItemsUtilTest.php:243 $folderForeignKeyName = RedBeanModel::getForeignKeyName('EmailMessage', 'folder'); $tableName = EmailMessage::getTableName(); $sql = "UPDATE " . DatabaseCompatibilityUtil::quoteString($tableName); $sql .= " SET " . DatabaseCompatibilityUtil::quoteString($folderForeignKeyName); $sql .= " = " . $folder->id; $sql .= " WHERE " . DatabaseCompatibilityUtil::quoteString('id') . " = " . $emailMessage->id; $effectedRows = ZurmoRedBean::exec($sql); if ($effectedRows == 1) { $emailMessageId = $emailMessage->id; $emailMessage->forgetAll(); $emailMessage = EmailMessage::getById($emailMessageId); return true; } return false; }
/** * @param $tableAliasName * @param $resolvedSortColumnName * @return string */ protected static function resolveGroupByColumnNameString($tableAliasName, $resolvedSortColumnName) { assert('is_string($tableAliasName)'); assert('is_string($resolvedSortColumnName)'); $groupBy = DatabaseCompatibilityUtil::quoteString($tableAliasName); $groupBy .= '.'; $groupBy .= DatabaseCompatibilityUtil::quoteString($resolvedSortColumnName); return $groupBy; }
protected static function markItemAsProcessedWithSQL($itemId, $emailMessageId = null) { $sql = "UPDATE " . DatabaseCompatibilityUtil::quoteString(static::$itemTableName); $sql .= " SET " . DatabaseCompatibilityUtil::quoteString('processed') . ' = 1'; if ($emailMessageId) { $sql .= ", " . DatabaseCompatibilityUtil::quoteString(static::$emailMessageForeignKey); $sql .= " = {$emailMessageId}"; } $sql .= " WHERE " . DatabaseCompatibilityUtil::quoteString('id') . " = {$itemId};"; $effectedRows = ZurmoRedBean::exec($sql); return $effectedRows == 1; }
protected function markItemAsProcessedWithSQL($emailMessageId = null) { $className = $this->itemClass; $itemTableName = $className::getTableName(); $sql = "UPDATE " . DatabaseCompatibilityUtil::quoteString($itemTableName); $sql .= " SET " . DatabaseCompatibilityUtil::quoteString('processed') . ' = 1'; if ($emailMessageId) { $emailMessageForeignKey = RedBeanModel::getForeignKeyName($this->itemClass, 'emailMessage'); $sql .= ", " . DatabaseCompatibilityUtil::quoteString($emailMessageForeignKey); $sql .= " = {$emailMessageId}"; } $sql .= " WHERE " . DatabaseCompatibilityUtil::quoteString('id') . " = {$this->itemId};"; $effectedRows = ZurmoRedBean::exec($sql); return $effectedRows == 1; }