Scalar types

This section describes introspection of scalar types.

Introspection of the schema::ScalarType:


1. db>
2. ...
3. ...
4. ...
5. ...
6. ...
7. ...
8. ...
9. ...
10. ...
11. ...


1. with module schema
2. select ObjectType {
3. name,
4. links: {
5. name,
6. },
7. properties: {
8. name,
9. }
10. }
11. filter .name = 'schema::ScalarType';


1. {
2. Object {
3. name: 'schema::ScalarType',
4. links: {
5. Object { name: '__type__' },
6. Object { name: 'annotations' },
7. Object { name: 'bases' },
8. Object { name: 'constraints' },
9. Object { name: 'ancestors' }
10. },
11. properties: {
12. Object { name: 'default' },
13. Object { name: 'enum_values' },
14. Object { name: 'id' },
15. Object { name: 'abstract' },
16. Object { name: 'name' }
17. }
18. }
19. }

Introspection of the built-in scalar str:


1. db>
2. ...
3. ...
4. ...
5. ...
6. ...
7. ...
8. ...
9. ...
10. ...
11. ...
12. ...


1. with module schema
2. select ScalarType {
3. name,
4. default,
5. enum_values,
6. abstract,
7. bases: { name },
8. ancestors: { name },
9. annotations: { name, @value },
10. constraints: { name },
11. }
12. filter .name = 'std::str';


1. {
2. Object {
3. name: 'std::str',
4. default: {},
5. enum_values: {},
6. abstract: {},
7. bases: {Object { name: 'std::anyscalar' }},
8. ancestors: {Object { name: 'std::anyscalar' }},
9. annotations: {},
10. constraints: {}
11. }
12. }

For an enumerated scalar type, consider the following:


1. scalar type Color extending enum<Red, Green, Blue>;

Introspection of the enum scalar Color:


1. db>
2. ...
3. ...
4. ...
5. ...
6. ...
7. ...
8. ...
9. ...
10. ...
11. ...
12. ...


1. with module schema
2. select ScalarType {
3. name,
4. default,
5. enum_values,
6. abstract,
7. bases: { name },
8. ancestors: { name },
9. annotations: { name, @value },
10. constraints: { name },
11. }
12. filter .name = 'default::Color';


1. {
2. Object {
3. name: 'default::Color',
4. default: {},
5. enum_values: ['Red', 'Green', 'Blue'],
6. abstract: {},
7. bases: {Object { name: 'std::anyenum' }},
8. ancestors: {
9. Object { name: 'std::anyscalar' },
10. Object { name: 'std::anyenum' }
11. },
12. annotations: {},
13. constraints: {}
14. }
15. }