Advertisement
Guest User

ss

a guest
May 3rd, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. def relationSelect(relation: Rep[Relation], field: String, value: Rep[String], resultSchema: Schema): LoweredRelation = {
  2. val relationArray = getRelationLowered(relation)
  3. implicit val recTp: TypeRep[Array[String]] = relationArray.tp.typeArguments(0).asInstanceOf[TypeRep[Array[String]]]
  4.  
  5. println(s"field: $field, value: $value")
  6. val relationSchema = getRelationSchema(relation)
  7. val maps: Map[String, Int] = relationSchema.columns.map(columnName => columnName -> relationSchema.columns.indexOf(columnName)).toMap
  8. val fieldColumnIndex: Int = maps(field)
  9. println(s"field: $field, value: $value, maps: $maps")
  10.  
  11. dsl"""
  12. var fieldColumnIndex = $fieldColumnIndex
  13. var size = 0
  14. for(i <- 0 until $relationArray(fieldColumnIndex).length) {
  15. if($relationArray(fieldColumnIndex)(i) == $value) {
  16. size = size + 1
  17. }
  18. }
  19.  
  20. var arr = new Array[Array[String]](${relationSchema.size})
  21. for (k <- 0 until ${relationSchema.size}) {
  22. arr(k)=new Array[String](size)
  23. }
  24.  
  25. var i = 0
  26. for(j <- 0 until $relationArray(fieldColumnIndex).length) {
  27. if(arr(fieldColumnIndex)(j) == $value) {
  28. for (k <- 0 until ${relationSchema.size}) {
  29. arr(k)(i)=$relationArray(k)(j)
  30. }
  31. i = i + 1
  32. }
  33. }
  34. arr
  35. """
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement