@@ -350,32 +350,36 @@ public static function parse(Parser $parser, TokensList $list, array $options =
350350 }
351351
352352 /**
353- * @param Expression $component The component to be built.
353+ * @param Expression|Expression[] $component The component to be built.
354354 *
355355 * @return string
356356 */
357357 public static function build ($ component )
358358 {
359- if (! empty ($ component-> expr )) {
360- $ ret = $ component-> expr ;
359+ if (is_array ($ component )) {
360+ return implode ( $ component, ' , ' ) ;
361361 } else {
362- $ fields = array ();
363- if (!empty ($ component ->database )) {
364- $ fields [] = $ component ->database ;
365- }
366- if (!empty ($ component ->table )) {
367- $ fields [] = $ component ->table ;
362+ if (!empty ($ component ->expr )) {
363+ $ ret = $ component ->expr ;
364+ } else {
365+ $ fields = array ();
366+ if ((isset ($ component ->database )) && ($ component ->database !== '' )) {
367+ $ fields [] = $ component ->database ;
368+ }
369+ if ((isset ($ component ->table )) && ($ component ->table !== '' )) {
370+ $ fields [] = $ component ->table ;
371+ }
372+ if ((isset ($ component ->column )) && ($ component ->column !== '' )) {
373+ $ fields [] = $ component ->column ;
374+ }
375+ $ ret = implode ('. ' , Context::escape ($ fields ));
368376 }
369- if (!empty ($ component ->column )) {
370- $ fields [] = $ component ->column ;
377+
378+ if (!empty ($ component ->alias )) {
379+ $ ret .= ' AS ' . Context::escape ($ component ->alias );
371380 }
372- $ ret = implode ('. ' , Context::escape ($ fields ));
373- }
374381
375- if (!empty ($ component ->alias )) {
376- $ ret .= ' AS ' . Context::escape ($ component ->alias );
382+ return $ ret ;
377383 }
378-
379- return $ ret ;
380384 }
381385}
0 commit comments