Repository: edgedb/edgedb

Issue:
Abstract pointers return `abstract: false` in introspection
- EdgeDB Version: 2.0-dev.6602+local

Steps to Reproduce:

```
edgedb> describe link std::link as sdl;
{'abstract link std::link;'}

edgedb> select schema::Pointer {
.......   name,
.......   abstract,
....... } filter .name = 'std::link';
{schema::Link {name: 'std::link', abstract: false}}
```



Discussion:
A workaround is to check source I suppose

Resolving patch:
diff --git a/edb/buildmeta.py b/edb/buildmeta.py
--- a/edb/buildmeta.py
+++ b/edb/buildmeta.py
@@ -44,7 +44,7 @@
 
 
 # Increment this whenever the database layout or stdlib changes.
-EDGEDB_CATALOG_VERSION = 2022_05_26_00_00
+EDGEDB_CATALOG_VERSION = 2022_05_27_00_00
 EDGEDB_MAJOR_VERSION = 2
 
 
diff --git a/edb/edgeql/parser/grammar/ddl.py b/edb/edgeql/parser/grammar/ddl.py
--- a/edb/edgeql/parser/grammar/ddl.py
+++ b/edb/edgeql/parser/grammar/ddl.py
@@ -1252,7 +1252,8 @@ def reduce_CreateProperty(self, *kids):
         self.val = qlast.CreateProperty(
             name=kids[3].val,
             bases=kids[4].val,
-            commands=kids[5].val
+            commands=kids[5].val,
+            abstract=True,
         )
 
 
@@ -1537,7 +1538,8 @@ def reduce_CreateLink(self, *kids):
         self.val = qlast.CreateLink(
             name=kids[3].val,
             bases=kids[4].val,
-            commands=kids[5].val
+            commands=kids[5].val,
+            abstract=True,
         )
 
 
diff --git a/edb/edgeql/parser/grammar/sdl.py b/edb/edgeql/parser/grammar/sdl.py
--- a/edb/edgeql/parser/grammar/sdl.py
+++ b/edb/edgeql/parser/grammar/sdl.py
@@ -556,6 +556,7 @@ def reduce_CreateProperty(self, *kids):
             name=kids[2].val,
             bases=kids[3].val,
             commands=kids[4].val,
+            abstract=True,
         )
 
 
@@ -565,6 +566,7 @@ def reduce_CreateProperty(self, *kids):
         self.val = qlast.CreateProperty(
             name=kids[2].val,
             bases=kids[3].val,
+            abstract=True,
         )
 
 
@@ -747,6 +749,7 @@ def reduce_CreateLink(self, *kids):
             name=kids[2].val,
             bases=kids[3].val,
             commands=kids[4].val,
+            abstract=True,
         )
 
 
@@ -757,6 +760,7 @@ def reduce_CreateLink(self, *kids):
         self.val = qlast.CreateLink(
             name=kids[2].val,
             bases=kids[3].val,
+            abstract=True,
         )
 
 


Test patch:
diff --git a/tests/test_edgeql_introspection.py b/tests/test_edgeql_introspection.py
--- a/tests/test_edgeql_introspection.py
+++ b/tests/test_edgeql_introspection.py
@@ -401,6 +401,19 @@ async def test_edgeql_introspection_link_01(self):
             }]
         )
 
+    async def test_edgeql_introspection_link_02(self):
+        await self.assert_query_result(
+            r"""
+                with module schema
+                select schema::Pointer { name, abstract }
+                filter .name = 'std::link';
+            """,
+            [{
+                'name': 'std::link',
+                'abstract': True,
+            }]
+        )
+
     async def test_edgeql_introspection_locality(self):
         await self.assert_query_result(
             r"""