code: function buildOrderArray (order) {
      var direction = ''
      // check if last element is asc/desc
      if (order[order.length - 1].match(/^asc|desc$/i)) {
          var direction = order.pop().toUpperCase()
      }
      // join columns together and add direction
      this.order.push(
          _.map(order, columnName => {
              // split column on . to see if it has prefix
              var parts = columnName.split('.')
              // column does not have prefix
              if (parts.length === 1) {
                  return this.alias+'.'+this.quoteName(this.model.columnName(columnName, true))
              }
              // column has prefix
              else if (parts.length === 2) {
                  var prefix = parts[0]
                  columnName = parts[1]
                  // prefix must be for joined model
                  assert.ok(this.joinRelations[prefix])
                  // get join for table prefix
                  var join = this.joinRelations[prefix]
                  // get relation for model
                  var relation = this.model.relation(prefix)
                  // return order sql
                  return join.relationAlias+'.'+this.quoteName(relation.model.columnName(columnName, true))
              }
              // error
              else {
                  throw new Error('invalid column in order '+columnName)
              }
          }).join(', ')+' '+direction
      )
  }
docs: @function buildOrderArray
  
  build order clause from array of columns with optional asc/desc
  
  @param {array} order
  
  @throws {Error}