{"action":"created","comment":{"url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/comments/72898971","id":72898971,"diff_hunk":"@@ -64,28 +67,65 @@ class RowFormatRelation(\n \n   override def toString: String = s\"RowFormatRelation[$table]\"\n \n-  lazy val connectionType = ExternalStoreUtils.getConnectionType(dialect)\n+  protected val connectionType = ExternalStoreUtils.getConnectionType(dialect)\n \n   final lazy val putStr = ExternalStoreUtils.getPutString(table, schema)\n \n+  private[this] lazy val resolvedName = ExternalStoreUtils.lookupName(table,\n+    tableSchema)\n+\n+  @transient private[this] lazy val region: LocalRegion =\n+    Misc.getRegionForTable(resolvedName, true).asInstanceOf[LocalRegion]\n+\n+  private[this] lazy val indexedColumns: mutable.HashSet[String] = {\n+    val cols = new mutable.HashSet[String]()\n+    val im = region.getIndexUpdater.asInstanceOf[GfxdIndexManager]\n+    if (im != null && im.getIndexConglomerateDescriptors != null) {\n+      val baseColumns = im.getContainer.getTableDescriptor.getColumnNamesArray\n+      val itr = im.getIndexConglomerateDescriptors.iterator()\n+      while (itr.hasNext) {\n+        // first column of index has to be present in filter to be usable\n+        val indexCols = itr.next().getIndexDescriptor.baseColumnPositions()\n+        cols += baseColumns(indexCols(0))\n+      }\n+    }\n+    cols\n+  }\n+\n+  override def unhandledFilters(filters: Array[Filter]): Array[Filter] =","path":"core/src/main/scala/org/apache/spark/sql/execution/row/RowFormatRelation.scala","position":54,"original_position":54,"commit_id":"fbd0f750a8e843cafa81cfe34a28953daf2abe9b","original_commit_id":"fbd0f750a8e843cafa81cfe34a28953daf2abe9b","user":{"login":"rishitesh","id":793775,"avatar_url":"https://avatars.githubusercontent.com/u/793775?v=3","gravatar_id":"","url":"https://api.github.com/users/rishitesh","html_url":"https://github.com/rishitesh","followers_url":"https://api.github.com/users/rishitesh/followers","following_url":"https://api.github.com/users/rishitesh/following{/other_user}","gists_url":"https://api.github.com/users/rishitesh/gists{/gist_id}","starred_url":"https://api.github.com/users/rishitesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rishitesh/subscriptions","organizations_url":"https://api.github.com/users/rishitesh/orgs","repos_url":"https://api.github.com/users/rishitesh/repos","events_url":"https://api.github.com/users/rishitesh/events{/privacy}","received_events_url":"https://api.github.com/users/rishitesh/received_events","type":"User","site_admin":false},"body":"Ok, Ignore the earlier comment. ","created_at":"2016-07-31T06:37:53Z","updated_at":"2016-07-31T06:37:53Z","html_url":"https://github.com/SnappyDataInc/snappydata/pull/317#discussion_r72898971","pull_request_url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317","_links":{"self":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/comments/72898971"},"html":{"href":"https://github.com/SnappyDataInc/snappydata/pull/317#discussion_r72898971"},"pull_request":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317"}}},"pull_request":{"url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317","id":79205593,"html_url":"https://github.com/SnappyDataInc/snappydata/pull/317","diff_url":"https://github.com/SnappyDataInc/snappydata/pull/317.diff","patch_url":"https://github.com/SnappyDataInc/snappydata/pull/317.patch","issue_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/317","number":317,"state":"open","locked":false,"title":"[SNAP-950] Multiple optimizations seen during profiling","user":{"login":"sumwale","id":11540628,"avatar_url":"https://avatars.githubusercontent.com/u/11540628?v=3","gravatar_id":"","url":"https://api.github.com/users/sumwale","html_url":"https://github.com/sumwale","followers_url":"https://api.github.com/users/sumwale/followers","following_url":"https://api.github.com/users/sumwale/following{/other_user}","gists_url":"https://api.github.com/users/sumwale/gists{/gist_id}","starred_url":"https://api.github.com/users/sumwale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sumwale/subscriptions","organizations_url":"https://api.github.com/users/sumwale/orgs","repos_url":"https://api.github.com/users/sumwale/repos","events_url":"https://api.github.com/users/sumwale/events{/privacy}","received_events_url":"https://api.github.com/users/sumwale/received_events","type":"User","site_admin":false},"body":"## Changes proposed in this pull request\r\n\r\n- CachedBatch creation: Use direct AbstractCompactExecRow.getAs* calls to get final java\r\n  values/objects instead of expensive ExecRow.getColumn().get* calls that create intermediate DVDs\r\n- CachedBatch creation: avoid switch on DataType+metadata for every row. Instead cache the end types\r\n  and use a fast switch on ints (code generation might be overkill and may not buy much)\r\n- Skip stats object (avoids its serialization/deserialization cost) for now in CachedBatch creation\r\n  since it is not being used\r\n- Use SparkShellRowRDD for split mode execution over row tables (currently only\r\n    done for row buffer of a column table)\r\n- Push down only those filters to row tables that can use indexes.\r\n- Added support for push down of more filters like IN, AND, OR, LIKE for\r\n  row tables (those that can use indexes)\r\n- Spark row table iteration: use direct access to internal AbstractCompactExecRow\r\n  where possible with getAs* calls\r\n\r\n## Patch testing\r\n\r\nprecheckin and store precheckin\r\n\r\n## ReleaseNotes.txt changes\r\n\r\nNA\r\n\r\n## Other PRs\r\n\r\nCreated over previous PR #311 for SNAP-933\r\n","created_at":"2016-07-28T14:27:32Z","updated_at":"2016-07-31T06:37:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7eb6b591e8966faf6227300488b0fd8bdfecdf80","assignee":{"login":"rishitesh","id":793775,"avatar_url":"https://avatars.githubusercontent.com/u/793775?v=3","gravatar_id":"","url":"https://api.github.com/users/rishitesh","html_url":"https://github.com/rishitesh","followers_url":"https://api.github.com/users/rishitesh/followers","following_url":"https://api.github.com/users/rishitesh/following{/other_user}","gists_url":"https://api.github.com/users/rishitesh/gists{/gist_id}","starred_url":"https://api.github.com/users/rishitesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rishitesh/subscriptions","organizations_url":"https://api.github.com/users/rishitesh/orgs","repos_url":"https://api.github.com/users/rishitesh/repos","events_url":"https://api.github.com/users/rishitesh/events{/privacy}","received_events_url":"https://api.github.com/users/rishitesh/received_events","type":"User","site_admin":false},"assignees":[{"login":"rishitesh","id":793775,"avatar_url":"https://avatars.githubusercontent.com/u/793775?v=3","gravatar_id":"","url":"https://api.github.com/users/rishitesh","html_url":"https://github.com/rishitesh","followers_url":"https://api.github.com/users/rishitesh/followers","following_url":"https://api.github.com/users/rishitesh/following{/other_user}","gists_url":"https://api.github.com/users/rishitesh/gists{/gist_id}","starred_url":"https://api.github.com/users/rishitesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rishitesh/subscriptions","organizations_url":"https://api.github.com/users/rishitesh/orgs","repos_url":"https://api.github.com/users/rishitesh/repos","events_url":"https://api.github.com/users/rishitesh/events{/privacy}","received_events_url":"https://api.github.com/users/rishitesh/received_events","type":"User","site_admin":false},{"login":"kneeraj","id":1151021,"avatar_url":"https://avatars.githubusercontent.com/u/1151021?v=3","gravatar_id":"","url":"https://api.github.com/users/kneeraj","html_url":"https://github.com/kneeraj","followers_url":"https://api.github.com/users/kneeraj/followers","following_url":"https://api.github.com/users/kneeraj/following{/other_user}","gists_url":"https://api.github.com/users/kneeraj/gists{/gist_id}","starred_url":"https://api.github.com/users/kneeraj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kneeraj/subscriptions","organizations_url":"https://api.github.com/users/kneeraj/orgs","repos_url":"https://api.github.com/users/kneeraj/repos","events_url":"https://api.github.com/users/kneeraj/events{/privacy}","received_events_url":"https://api.github.com/users/kneeraj/received_events","type":"User","site_admin":false},{"login":"hbhanawat","id":8359624,"avatar_url":"https://avatars.githubusercontent.com/u/8359624?v=3","gravatar_id":"","url":"https://api.github.com/users/hbhanawat","html_url":"https://github.com/hbhanawat","followers_url":"https://api.github.com/users/hbhanawat/followers","following_url":"https://api.github.com/users/hbhanawat/following{/other_user}","gists_url":"https://api.github.com/users/hbhanawat/gists{/gist_id}","starred_url":"https://api.github.com/users/hbhanawat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hbhanawat/subscriptions","organizations_url":"https://api.github.com/users/hbhanawat/orgs","repos_url":"https://api.github.com/users/hbhanawat/repos","events_url":"https://api.github.com/users/hbhanawat/events{/privacy}","received_events_url":"https://api.github.com/users/hbhanawat/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317/commits","review_comments_url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317/comments","review_comment_url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/317/comments","statuses_url":"https://api.github.com/repos/SnappyDataInc/snappydata/statuses/fbd0f750a8e843cafa81cfe34a28953daf2abe9b","head":{"label":"SnappyDataInc:SNAP-950","ref":"SNAP-950","sha":"fbd0f750a8e843cafa81cfe34a28953daf2abe9b","user":{"login":"SnappyDataInc","id":11342682,"avatar_url":"https://avatars.githubusercontent.com/u/11342682?v=3","gravatar_id":"","url":"https://api.github.com/users/SnappyDataInc","html_url":"https://github.com/SnappyDataInc","followers_url":"https://api.github.com/users/SnappyDataInc/followers","following_url":"https://api.github.com/users/SnappyDataInc/following{/other_user}","gists_url":"https://api.github.com/users/SnappyDataInc/gists{/gist_id}","starred_url":"https://api.github.com/users/SnappyDataInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SnappyDataInc/subscriptions","organizations_url":"https://api.github.com/users/SnappyDataInc/orgs","repos_url":"https://api.github.com/users/SnappyDataInc/repos","events_url":"https://api.github.com/users/SnappyDataInc/events{/privacy}","received_events_url":"https://api.github.com/users/SnappyDataInc/received_events","type":"Organization","site_admin":false},"repo":{"id":42580991,"name":"snappydata","full_name":"SnappyDataInc/snappydata","owner":{"login":"SnappyDataInc","id":11342682,"avatar_url":"https://avatars.githubusercontent.com/u/11342682?v=3","gravatar_id":"","url":"https://api.github.com/users/SnappyDataInc","html_url":"https://github.com/SnappyDataInc","followers_url":"https://api.github.com/users/SnappyDataInc/followers","following_url":"https://api.github.com/users/SnappyDataInc/following{/other_user}","gists_url":"https://api.github.com/users/SnappyDataInc/gists{/gist_id}","starred_url":"https://api.github.com/users/SnappyDataInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SnappyDataInc/subscriptions","organizations_url":"https://api.github.com/users/SnappyDataInc/orgs","repos_url":"https://api.github.com/users/SnappyDataInc/repos","events_url":"https://api.github.com/users/SnappyDataInc/events{/privacy}","received_events_url":"https://api.github.com/users/SnappyDataInc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SnappyDataInc/snappydata","description":"SnappyData: OLTP + OLAP Database built on Apache Spark","fork":false,"url":"https://api.github.com/repos/SnappyDataInc/snappydata","forks_url":"https://api.github.com/repos/SnappyDataInc/snappydata/forks","keys_url":"https://api.github.com/repos/SnappyDataInc/snappydata/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SnappyDataInc/snappydata/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SnappyDataInc/snappydata/teams","hooks_url":"https://api.github.com/repos/SnappyDataInc/snappydata/hooks","issue_events_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/events{/number}","events_url":"https://api.github.com/repos/SnappyDataInc/snappydata/events","assignees_url":"https://api.github.com/repos/SnappyDataInc/snappydata/assignees{/user}","branches_url":"https://api.github.com/repos/SnappyDataInc/snappydata/branches{/branch}","tags_url":"https://api.github.com/repos/SnappyDataInc/snappydata/tags","blobs_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/refs{/sha}","trees_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SnappyDataInc/snappydata/statuses/{sha}","languages_url":"https://api.github.com/repos/SnappyDataInc/snappydata/languages","stargazers_url":"https://api.github.com/repos/SnappyDataInc/snappydata/stargazers","contributors_url":"https://api.github.com/repos/SnappyDataInc/snappydata/contributors","subscribers_url":"https://api.github.com/repos/SnappyDataInc/snappydata/subscribers","subscription_url":"https://api.github.com/repos/SnappyDataInc/snappydata/subscription","commits_url":"https://api.github.com/repos/SnappyDataInc/snappydata/commits{/sha}","git_commits_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/commits{/sha}","comments_url":"https://api.github.com/repos/SnappyDataInc/snappydata/comments{/number}","issue_comment_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/comments{/number}","contents_url":"https://api.github.com/repos/SnappyDataInc/snappydata/contents/{+path}","compare_url":"https://api.github.com/repos/SnappyDataInc/snappydata/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SnappyDataInc/snappydata/merges","archive_url":"https://api.github.com/repos/SnappyDataInc/snappydata/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SnappyDataInc/snappydata/downloads","issues_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues{/number}","pulls_url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls{/number}","milestones_url":"https://api.github.com/repos/SnappyDataInc/snappydata/milestones{/number}","notifications_url":"https://api.github.com/repos/SnappyDataInc/snappydata/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SnappyDataInc/snappydata/labels{/name}","releases_url":"https://api.github.com/repos/SnappyDataInc/snappydata/releases{/id}","deployments_url":"https://api.github.com/repos/SnappyDataInc/snappydata/deployments","created_at":"2015-09-16T10:36:36Z","updated_at":"2016-07-24T12:24:47Z","pushed_at":"2016-07-29T14:57:56Z","git_url":"git://github.com/SnappyDataInc/snappydata.git","ssh_url":"git@github.com:SnappyDataInc/snappydata.git","clone_url":"https://github.com/SnappyDataInc/snappydata.git","svn_url":"https://github.com/SnappyDataInc/snappydata","homepage":"http://www.snappydata.io","size":146196,"stargazers_count":322,"watchers_count":322,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":42,"mirror_url":null,"open_issues_count":17,"forks":42,"open_issues":17,"watchers":322,"default_branch":"master"}},"base":{"label":"SnappyDataInc:SNAP-933","ref":"SNAP-933","sha":"5f5f3ecebae47d8112c267ab0e894a9c589633c0","user":{"login":"SnappyDataInc","id":11342682,"avatar_url":"https://avatars.githubusercontent.com/u/11342682?v=3","gravatar_id":"","url":"https://api.github.com/users/SnappyDataInc","html_url":"https://github.com/SnappyDataInc","followers_url":"https://api.github.com/users/SnappyDataInc/followers","following_url":"https://api.github.com/users/SnappyDataInc/following{/other_user}","gists_url":"https://api.github.com/users/SnappyDataInc/gists{/gist_id}","starred_url":"https://api.github.com/users/SnappyDataInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SnappyDataInc/subscriptions","organizations_url":"https://api.github.com/users/SnappyDataInc/orgs","repos_url":"https://api.github.com/users/SnappyDataInc/repos","events_url":"https://api.github.com/users/SnappyDataInc/events{/privacy}","received_events_url":"https://api.github.com/users/SnappyDataInc/received_events","type":"Organization","site_admin":false},"repo":{"id":42580991,"name":"snappydata","full_name":"SnappyDataInc/snappydata","owner":{"login":"SnappyDataInc","id":11342682,"avatar_url":"https://avatars.githubusercontent.com/u/11342682?v=3","gravatar_id":"","url":"https://api.github.com/users/SnappyDataInc","html_url":"https://github.com/SnappyDataInc","followers_url":"https://api.github.com/users/SnappyDataInc/followers","following_url":"https://api.github.com/users/SnappyDataInc/following{/other_user}","gists_url":"https://api.github.com/users/SnappyDataInc/gists{/gist_id}","starred_url":"https://api.github.com/users/SnappyDataInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SnappyDataInc/subscriptions","organizations_url":"https://api.github.com/users/SnappyDataInc/orgs","repos_url":"https://api.github.com/users/SnappyDataInc/repos","events_url":"https://api.github.com/users/SnappyDataInc/events{/privacy}","received_events_url":"https://api.github.com/users/SnappyDataInc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SnappyDataInc/snappydata","description":"SnappyData: OLTP + OLAP Database built on Apache Spark","fork":false,"url":"https://api.github.com/repos/SnappyDataInc/snappydata","forks_url":"https://api.github.com/repos/SnappyDataInc/snappydata/forks","keys_url":"https://api.github.com/repos/SnappyDataInc/snappydata/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SnappyDataInc/snappydata/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SnappyDataInc/snappydata/teams","hooks_url":"https://api.github.com/repos/SnappyDataInc/snappydata/hooks","issue_events_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/events{/number}","events_url":"https://api.github.com/repos/SnappyDataInc/snappydata/events","assignees_url":"https://api.github.com/repos/SnappyDataInc/snappydata/assignees{/user}","branches_url":"https://api.github.com/repos/SnappyDataInc/snappydata/branches{/branch}","tags_url":"https://api.github.com/repos/SnappyDataInc/snappydata/tags","blobs_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/refs{/sha}","trees_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SnappyDataInc/snappydata/statuses/{sha}","languages_url":"https://api.github.com/repos/SnappyDataInc/snappydata/languages","stargazers_url":"https://api.github.com/repos/SnappyDataInc/snappydata/stargazers","contributors_url":"https://api.github.com/repos/SnappyDataInc/snappydata/contributors","subscribers_url":"https://api.github.com/repos/SnappyDataInc/snappydata/subscribers","subscription_url":"https://api.github.com/repos/SnappyDataInc/snappydata/subscription","commits_url":"https://api.github.com/repos/SnappyDataInc/snappydata/commits{/sha}","git_commits_url":"https://api.github.com/repos/SnappyDataInc/snappydata/git/commits{/sha}","comments_url":"https://api.github.com/repos/SnappyDataInc/snappydata/comments{/number}","issue_comment_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/comments{/number}","contents_url":"https://api.github.com/repos/SnappyDataInc/snappydata/contents/{+path}","compare_url":"https://api.github.com/repos/SnappyDataInc/snappydata/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SnappyDataInc/snappydata/merges","archive_url":"https://api.github.com/repos/SnappyDataInc/snappydata/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SnappyDataInc/snappydata/downloads","issues_url":"https://api.github.com/repos/SnappyDataInc/snappydata/issues{/number}","pulls_url":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls{/number}","milestones_url":"https://api.github.com/repos/SnappyDataInc/snappydata/milestones{/number}","notifications_url":"https://api.github.com/repos/SnappyDataInc/snappydata/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SnappyDataInc/snappydata/labels{/name}","releases_url":"https://api.github.com/repos/SnappyDataInc/snappydata/releases{/id}","deployments_url":"https://api.github.com/repos/SnappyDataInc/snappydata/deployments","created_at":"2015-09-16T10:36:36Z","updated_at":"2016-07-24T12:24:47Z","pushed_at":"2016-07-29T14:57:56Z","git_url":"git://github.com/SnappyDataInc/snappydata.git","ssh_url":"git@github.com:SnappyDataInc/snappydata.git","clone_url":"https://github.com/SnappyDataInc/snappydata.git","svn_url":"https://github.com/SnappyDataInc/snappydata","homepage":"http://www.snappydata.io","size":146196,"stargazers_count":322,"watchers_count":322,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":42,"mirror_url":null,"open_issues_count":17,"forks":42,"open_issues":17,"watchers":322,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317"},"html":{"href":"https://github.com/SnappyDataInc/snappydata/pull/317"},"issue":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/317"},"comments":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/issues/317/comments"},"review_comments":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317/comments"},"review_comment":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/pulls/317/commits"},"statuses":{"href":"https://api.github.com/repos/SnappyDataInc/snappydata/statuses/fbd0f750a8e843cafa81cfe34a28953daf2abe9b"}}}}
{"actor":{"display_login":"rishitesh"}}