Example #1
0
 private function buildSubQuery($table, Query $query)
 {
     $table = $this->sanitize($table);
     $sensorIdColumn = $this->sanitize($query->getSensorIdColumn());
     $valuesColumn = $this->sanitize($query->getValuesColumn());
     $timestampColumn = $this->sanitize($query->getTimestampColumn());
     $sql = sprintf("SELECT\n                CAST('{$table}' AS TEXT) AS %s,\n                {$sensorIdColumn} AS %s,\n                {$valuesColumn} AS %s,\n                {$timestampColumn} AS %s\n            FROM {$table}", self::$_tableCol, self::$_sensorIdCol, self::$_valuesCol, self::$_timestampCol);
     if (count($sensors = $query->getSensorsByTable($table)) > 0) {
         $sensorWhere = array();
         foreach (array_keys($sensors) as $i) {
             $sensorWhere[] = ":{$table}{$i}";
         }
         $sql .= " WHERE {$sensorIdColumn} IN (" . implode(',', $sensorWhere) . ')';
     }
     return $sql;
 }