Exemplo n.º 1
0
 function translateUnaryClause(&$clause)
 {
     if (!isset($clause['type'])) {
         $this->translateClause($clause);
     } else {
         switch ($clause['type']) {
             case 'ident':
                 $new_value = $this->translateColumn($clause['value'], null, false);
                 if (is_array($new_value) and isset($new_value['set_function'])) {
                     // the translation is a function
                     $clause['type'] = 'function';
                     $clause['value'] = $new_value['set_function'][0];
                 } else {
                     $clause['value'] = $new_value['column_names'][0];
                 }
                 break;
             case 'function':
                 $this->translateFunction($clause['value']);
                 break;
             case 'subclause':
                 $this->translateClause($clause['value']);
                 break;
             case 'command':
             case 'subquery':
                 $translator = new Dataface_QueryTranslator($this->_lang);
                 $translator->setParentContext($this);
                 $clause['value'] = $translator->translateQuery($clause['value'], $this->_lang, false);
                 break;
                 //case 'match':
                 //	if ( isset($clause['value']) and is_array($clause['value']) ){
                 //		$numClauses = count($clause['value']);
                 //		for ($i=0; $i<$numClauses; $i++){
                 //
                 //
                 //
                 //		}
                 //	}
                 //	break;
         }
     }
 }