Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def relationSelect(relation: Rep[Relation], field: String, value: Rep[String], resultSchema: Schema): LoweredRelation = {
- val relationArray = getRelationLowered(relation)
- implicit val recTp: TypeRep[Array[String]] = relationArray.tp.typeArguments(0).asInstanceOf[TypeRep[Array[String]]]
- println(s"field: $field, value: $value")
- val relationSchema = getRelationSchema(relation)
- val maps: Map[String, Int] = relationSchema.columns.map(columnName => columnName -> relationSchema.columns.indexOf(columnName)).toMap
- val fieldColumnIndex: Int = maps(field)
- println(s"field: $field, value: $value, maps: $maps")
- dsl"""
- var fieldColumnIndex = $fieldColumnIndex
- var size = 0
- for(i <- 0 until $relationArray(fieldColumnIndex).length) {
- if($relationArray(fieldColumnIndex)(i) == $value) {
- size = size + 1
- }
- }
- var arr = new Array[Array[String]](${relationSchema.size})
- for (k <- 0 until ${relationSchema.size}) {
- arr(k)=new Array[String](size)
- }
- var i = 0
- for(j <- 0 until $relationArray(fieldColumnIndex).length) {
- if(arr(fieldColumnIndex)(j) == $value) {
- for (k <- 0 until ${relationSchema.size}) {
- arr(k)(i)=$relationArray(k)(j)
- }
- i = i + 1
- }
- }
- arr
- """
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement