|
International
Standard
ISO/IEC 39075
First edition
Information technology — Database
2024-04
languages — GQL
Technologies de l'information — Langages de base de
données — GQL
Reference number
© ISO/IEC 2024
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: [email protected]
Website: www.iso.org
Published in Switzerland
© ISO/IEC 2024 – All rights reserved
ii
ISO/IEC39075:2024(en)
Contents Page
Foreword.xiv
Introduction.xv
1 Scope.1
2 Normativereferences.2
3 Termsanddefinitions.3
3.1 Generaltermsanddefinitions.3
3.2 GQL-environmenttermsanddefinitions.4
3.3 GQL-catalogtermsanddefinitions.6
3.4 Graphtermsanddefinitions.7
3.5 Procedureandcommandtermsanddefinitions.9
3.6 Generalsyntaxtermsanddefinitions.12
3.7 Graphpatterntermsanddefinitions.14
3.8 Valuetermsanddefinitions.15
3.9 Typetermsanddefinitions.17
3.10 Temporaltermsanddefinitions.19
4 Concepts.21
4.1 Useofterms.21
4.2 GQL-environmentsandtheircomponents.21
4.2.1 GeneraldescriptionofGQL-environments.21
4.2.2 GQL-agents.22
4.2.3 GQL-implementations.22
4.2.3.1 IntroductiontoGQL-implementations.22
4.2.3.2 GQL-clients.23
4.2.3.3 GQL-servers.23
4.2.4 Basicsecuritymodel.24
4.2.4.1 Principals.24
4.2.4.2 Authorizationidentifiersandprivileges.24
4.2.5 GQL-catalog.24
4.2.5.1 GeneraldescriptionoftheGQL-catalog.24
4.2.5.2 GQL-directories.25
4.2.5.3 GQL-schemas.26
4.2.6 GQL-data.27
4.3 GQL-objects.27
4.3.1 GeneralintroductiontoGQL-objects.27
4.3.2 ReferencestoGQL-schemasandGQL-objects.27
4.3.3 Primaryobjectsandsecondaryobjects.28
4.3.4 Propertiesandsupportedpropertyvaluetypes.28
4.3.5 Graphs.29
©ISO/IEC2024–Allrightsreserved
iii
ISO/IEC39075:2024(en)
4.3.5.1 Introductiontographs.29
4.3.5.2 Graphdescriptors.30
4.3.6 Bindingtables.30
4.4 Values.32
4.4.1 Generalinformationaboutvalues.32
4.4.2 Comparable values.32
4.4.3 Propertiesofdistinctvalues.32
4.4.4 Referencevalues.33
4.4.5 Materialvaluesandthenullvalue.33
4.5 GQL-sessions.33
4.5.1 GeneraldescriptionofGQL-sessions.33
4.5.2 Session contexts.34
4.5.2.1 Introductiontosessioncontexts.34
4.5.2.2 Sessioncontextcreation.35
4.5.2.3 Sessioncontextmodification.35
4.6 GQL-transactions.35
4.6.1 GeneraldescriptionofGQL-transactions.35
4.6.2 Transactiondemarcation.36
4.6.3 Transaction isolation.37
4.6.4 Encompassingtransactionbelongingtoanexternalagent.37
4.7 GQL-requestsandGQL-programs.38
4.7.1 GeneraldescriptionofGQL-requestsandGQL-programs.38
4.7.2 GQL-requestcontexts.38
4.7.2.1 IntroductiontoGQL-requestcontexts.38
4.7.2.2 GQL-requestcontextcreation.38
4.7.2.3 GQL-requestcontextmodification.39
4.7.3 ExecutionofGQL-requests.39
4.7.4 Workingschemareferences.40
4.7.5 Workinggraphsite.41
4.7.6 Executionstack.41
4.7.7 Operations.41
4.8 Execution contexts.42
4.8.1 Generaldescriptionofexecutioncontexts.42
4.8.2 Executioncontextcreationandinitialization.44
4.8.3 Executioncontextmodification.45
4.8.4 Execution outcomes.45
4.9 Diagnosticinformation.46
4.9.1 Introductiontodiagnosticinformation.46
4.9.2 GQL-status objects.46
4.9.3 Conditions.47
4.10 Proceduresandcommands.49
4.10.1 Generaldescriptionofproceduresandcommands.49
4.10.2 Procedures.49
4.10.2.1 Generaldescriptionofprocedures.49
4.10.2.2 Namedproceduredescriptors.50
4.10.2.3 Procedureexecution.50
4.10.2.4 Proceduresclassifiedbykindofsideeffects.50
©ISO/IEC2024–Allrightsreserved
iv
ISO/IEC39075:2024(en)
4.10.3 Commands.51
4.10.4 GQL-procedures.51
4.10.4.1 IntroductiontoGQL-procedures.51
4.10.4.2 Bindingvariablesandgeneralparameters.51
4.10.4.3 Statements.52
4.10.4.4 Statementsclassifiedbyuseofworkinggraphsites.52
4.10.4.5 Statementsclassifiedbyfunction.52
4.11 Graphpatternmatching.53
4.11.1 Summaryofgraphpatternmatching.53
4.11.2 Paths.53
4.11.3 Pathpatterns.54
4.11.4 Graphpatternvariables.55
4.11.5 Referencestographpatternvariables.56
4.11.6 Pathpatternmatching.57
4.11.7 Path modes.58
4.11.8 Selectivepathsearchprefixes.59
4.11.9 Matchmodes.59
4.12 Data types.59
4.12.1 Generalintroductiontodatatypesandbasetypes.59
4.12.2 Majorclassesofdatatypes.60
4.12.3 Datatypedescriptors.62
4.12.4 Namingofdatatypesandbasetypes.62
4.12.5 Material,nullable,andimmaterialdatatypes.63
4.12.6 Mostspecificstaticvaluetypeandstaticbasetype.63
4.12.7 Openandcloseddatatypes.63
4.12.8 Additionalterminologyrelatedtodatatypes.64
4.13 GQL-objecttypes.64
4.13.1 IntroductiontoGQL-objecttypesandrelatedbasetypes.64
4.13.2 Graphtypesandgraphelementtypes.65
4.13.2.1 Introductiontographtypesandgraphelementtypes.65
4.13.2.2 Graphtypedescriptors.65
4.13.2.3 Node types.66
4.13.2.4 Edgetypes.67
4.13.2.5 Property types.68
4.13.2.6 Keylabelsets.69
4.13.2.7 Structuralconsistencyofelementtypes.69
4.13.3 Bindingtabletypes.70
4.14 Dynamicuniontypes.71
4.14.1 Introductiontodynamicuniontypesandthedynamicbasetype.71
4.14.2 Dynamicuniondatatypedescriptors.71
4.14.3 Characteristicsofdynamicuniontypes.71
4.14.4 Dynamicgenerationoftypetestsandcasts.72
4.14.4.1 Introductiontodynamicgenerationoftypetestsandcastsfors.72
4.14.4.2 Dynamicgenerationoftypetestsandstrictcastsforawithoutoperands.72
4.14.4.3 Dynamicgenerationoftypetestsandstrictcastsforawithoperands.73
4.14.4.4 Dynamicgenerationofadditionaltypetestsandlaxcastsfora.75
4.15 Constructedvaluetypes.75
©ISO/IEC2024–Allrightsreserved
v
ISO/IEC39075:2024(en)
4.15.1 Introductiontoconstructedvaluetypesandrelatedbasetypes.75
4.15.2 Pathvaluetypes.76
4.15.3 Listvaluetypes.76
4.15.4 Record types.77
4.16 Predefinedvaluetypes.79
4.16.1 Introductiontopredefinedvaluetypesandrelatedbasetypes.79
4.16.2 Boolean types.81
4.16.3 Characterstringtypes.82
4.16.3.1 Introductiontocharacterstrings.82
4.16.3.2 Collations.83
4.16.4 Bytestringtypes.
...