diff --git a/src/metabase/api/meta/table.clj b/src/metabase/api/meta/table.clj
index 4063159857428ec4a580fb98523ecea3aedefe63..ac41906fd5d5675bdcde3f8c860574c2b0e9c871 100644
--- a/src/metabase/api/meta/table.clj
+++ b/src/metabase/api/meta/table.clj
@@ -48,7 +48,8 @@
 (defendpoint GET "/:id/fields"
   "Get all `Fields` for `Table` with ID."
   [id]
-  (sel :many Field :table_id id))
+  ;; TODO: READ CHECK ?
+  (sel :many Field :table_id id (order :name :ASC)))
 
 (defendpoint GET "/:id/query_metadata" [id]
   (->404 (sel :one Table :id id)
diff --git a/src/metabase/api/query.clj b/src/metabase/api/query.clj
index cb12288d457871103b3e407f8ad8f21161447f84..153b13aa11262c7c6d409530b6e11acbb0fa9542 100644
--- a/src/metabase/api/query.clj
+++ b/src/metabase/api/query.clj
@@ -1,4 +1,5 @@
 (ns metabase.api.query
+  "/api/query endpoints."
   (:require [clojure.data.csv :as csv]
             [korma.core :refer [where subselect fields order limit]]
             [compojure.core :refer [defroutes GET PUT POST DELETE]]
@@ -28,15 +29,14 @@
   [org f]
   {org Required, f FilterOptionAllOrMine}
   (read-check Org org)
-  (-> (case (or f :all)
-        :all (sel :many Query
-                  (where (or (= :creator_id *current-user-id*) (> :public_perms common/perms-none)))
-               (where {:database_id [in (subselect Database (fields :id) (where {:organization_id org}))]})
-               (order :name :ASC))
-        :mine (sel :many Query :creator_id *current-user-id*
-                (where {:database_id [in (subselect Database (fields :id) (where {:organization_id org}))]})
-                (order :name :ASC)))
-    (hydrate :creator :database)))
+  (let [all? (or (not f) (= f :all))]
+    (-> (sel :many Query
+             (where {:database_id [in (subselect Database (fields :id) (where {:organization_id org}))]})
+             (where (or {:creator_id *current-user-id*}
+                        (when all?
+                          {:public_perms [> common/perms-none]})))
+             (order :name :ASC))
+        (hydrate :creator :database))))
 
 
 (defn query-clone
diff --git a/test/metabase/api/meta/table_test.clj b/test/metabase/api/meta/table_test.clj
index 9aefcd55ae3da80df6c09e099e03348115e8f40d..cc6653228639d29b213d108585b1b4f17f06555b 100644
--- a/test/metabase/api/meta/table_test.clj
+++ b/test/metabase/api/meta/table_test.clj
@@ -54,32 +54,32 @@
   ((user->client :rasta) :get 200 (format "meta/table/%d" (table->id :venues))))
 
 ;; ## GET /api/meta/table/:id/fields
-(expect [(match-$ (sel :one Field :id (field->id :categories :name))
+(expect [(match-$ (sel :one Field :id (field->id :categories :id))
            {:description nil
             :table_id (table->id :categories)
-            :special_type nil
-            :name "NAME"
+            :special_type "id"
+            :name "ID"
             :updated_at $
             :active true
-            :id (field->id :categories :name)
+            :id (field->id :categories :id)
             :field_type "info"
             :position 0
             :preview_display true
             :created_at $
-            :base_type "TextField"})
-         (match-$ (sel :one Field :id (field->id :categories :id))
+            :base_type "BigIntegerField"})
+         (match-$ (sel :one Field :id (field->id :categories :name))
            {:description nil
             :table_id (table->id :categories)
-            :special_type "id"
-            :name "ID"
+            :special_type nil
+            :name "NAME"
             :updated_at $
             :active true
-            :id (field->id :categories :id)
+            :id (field->id :categories :name)
             :field_type "info"
             :position 0
             :preview_display true
             :created_at $
-            :base_type "BigIntegerField"})]
+            :base_type "TextField"})]
   ((user->client :rasta) :get 200 (format "meta/table/%d/fields" (table->id :categories))))
 
 ;; ## GET /api/meta/table/:id/query_metadata
diff --git a/test/metabase/api/query_test.clj b/test/metabase/api/query_test.clj
index b0e19a9d84c7777f99eb071b97501e2e1cdeeedf..12f015770404146e8ce0747e24ee78ce4d3f0bef 100644
--- a/test/metabase/api/query_test.clj
+++ b/test/metabase/api/query_test.clj
@@ -187,7 +187,7 @@
 ;; ## GET /api/query
 ;; Fetch Queries for the current Org
 (expect-eval-actual-first
-    (let [[query-1 query-2] (sel :many Query :database_id (:id @test-db) (order :id :ASC))
+    (let [[query-1 query-2] (sel :many Query :database_id (:id @test-db) (order :name :ASC))
           rasta (match-$ (fetch-user :rasta)
                   {:common_name "Rasta Toucan"
                    :date_joined $
@@ -206,38 +206,38 @@
                 :name "Test Database"
                 :organization_id @org-id
                 :description nil})]
-      #{(match-$ query-1
-          {:creator rasta
-           :database_id (:id @test-db)
-           :name $
-           :type "rawsql"
-           :creator_id (user->id :rasta)
-           :updated_at $
-           :details {:timezone nil
-                     :sql "SELECT COUNT(*) FROM VENUES;"}
-           :id $
-           :database db
-           :version 1
-           :public_perms 0
-           :created_at $})
-        (match-$ query-2
-          {:creator rasta
-           :database_id (:id @test-db)
-           :name $
-           :type "rawsql"
-           :creator_id (user->id :rasta)
-           :updated_at $
-           :details {:timezone nil
-                     :sql "SELECT COUNT(*) FROM VENUES;"}
-           :id $
-           :database db
-           :version 1
-           :public_perms 0
-           :created_at $})})
+      [(match-$ query-1
+         {:creator rasta
+          :database_id (:id @test-db)
+          :name $
+          :type "rawsql"
+          :creator_id (user->id :rasta)
+          :updated_at $
+          :details {:timezone nil
+                    :sql "SELECT COUNT(*) FROM VENUES;"}
+          :id $
+          :database db
+          :version 1
+          :public_perms 0
+          :created_at $})
+       (match-$ query-2
+         {:creator rasta
+          :database_id (:id @test-db)
+          :name $
+          :type "rawsql"
+          :creator_id (user->id :rasta)
+          :updated_at $
+          :details {:timezone nil
+                    :sql "SELECT COUNT(*) FROM VENUES;"}
+          :id $
+          :database db
+          :version 1
+          :public_perms 0
+          :created_at $})])
   (do (cascade-delete Query :database_id (:id @test-db))
       (create-query)
       (create-query)
-      (set ((user->client :rasta) :get 200 "query" :org @org-id))))
+      ((user->client :rasta) :get 200 "query" :org @org-id)))
 
 
 ;; ## POST /api/query/:id/csv