query

package
v0.0.85 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UnknownComparison = iota
	Equal             = iota
	NotEqual          = iota
	Less              = iota
	Greater           = iota
	LessOrEqual       = iota
	GreaterOrEqual    = iota
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddOrSubstractExpression

type AddOrSubstractExpression string

type AddOrSubtractOperator

type AddOrSubtractOperator int

type BaseCypherVisitor

type BaseCypherVisitor struct {
	parser.BaseCypherVisitor
	// contains filtered or unexported fields
}

BaseCypherVisitor visitor for cypher

func NewCypherVisitor

func NewCypherVisitor() *BaseCypherVisitor

NewCypherVisitor create a visitor for cypher

func (*BaseCypherVisitor) AppendError

func (cl *BaseCypherVisitor) AppendError(err error)

AppendError append one error to visitor

func (*BaseCypherVisitor) AppendErrors

func (cl *BaseCypherVisitor) AppendErrors(err ...error)

AppendErrors append mulitple errors to visitor

func (*BaseCypherVisitor) Visit

func (cl *BaseCypherVisitor) Visit(tree antlr.ParseTree) interface{}

Visit the AST

func (*BaseCypherVisitor) VisitOC_AddOrSubtractExpression

func (cl *BaseCypherVisitor) VisitOC_AddOrSubtractExpression(c *parser.OC_AddOrSubtractExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_AndExpression

func (cl *BaseCypherVisitor) VisitOC_AndExpression(c *parser.OC_AndExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_AnonymousPatternPart

func (cl *BaseCypherVisitor) VisitOC_AnonymousPatternPart(c *parser.OC_AnonymousPatternPartContext) interface{}

func (*BaseCypherVisitor) VisitOC_Atom

func (cl *BaseCypherVisitor) VisitOC_Atom(c *parser.OC_AtomContext) interface{}

func (*BaseCypherVisitor) VisitOC_BooleanLiteral

func (cl *BaseCypherVisitor) VisitOC_BooleanLiteral(c *parser.OC_BooleanLiteralContext) interface{}

func (*BaseCypherVisitor) VisitOC_ComparisonExpression

func (cl *BaseCypherVisitor) VisitOC_ComparisonExpression(c *parser.OC_ComparisonExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_Cypher

func (cl *BaseCypherVisitor) VisitOC_Cypher(c *parser.OC_CypherContext) interface{}

VisitOC_Cypher visit cypher

func (*BaseCypherVisitor) VisitOC_DoubleLiteral

func (cl *BaseCypherVisitor) VisitOC_DoubleLiteral(c *parser.OC_DoubleLiteralContext) interface{}

func (*BaseCypherVisitor) VisitOC_Expression

func (cl *BaseCypherVisitor) VisitOC_Expression(c *parser.OC_ExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_FunctionInvocation

func (cl *BaseCypherVisitor) VisitOC_FunctionInvocation(c *parser.OC_FunctionInvocationContext) interface{}

func (*BaseCypherVisitor) VisitOC_IntegerLiteral

func (cl *BaseCypherVisitor) VisitOC_IntegerLiteral(c *parser.OC_IntegerLiteralContext) interface{}

func (*BaseCypherVisitor) VisitOC_LabelName

func (cl *BaseCypherVisitor) VisitOC_LabelName(c *parser.OC_LabelNameContext) interface{}

func (*BaseCypherVisitor) VisitOC_Limit

func (cl *BaseCypherVisitor) VisitOC_Limit(c *parser.OC_LimitContext) interface{}

func (*BaseCypherVisitor) VisitOC_Literal

func (cl *BaseCypherVisitor) VisitOC_Literal(c *parser.OC_LiteralContext) interface{}

func (*BaseCypherVisitor) VisitOC_Match

func (cl *BaseCypherVisitor) VisitOC_Match(c *parser.OC_MatchContext) interface{}

func (*BaseCypherVisitor) VisitOC_MultiPartQuery added in v0.0.79

func (cl *BaseCypherVisitor) VisitOC_MultiPartQuery(c *parser.OC_MultiPartQueryContext) interface{}

func (*BaseCypherVisitor) VisitOC_MultiplyDivideModuloExpression

func (cl *BaseCypherVisitor) VisitOC_MultiplyDivideModuloExpression(c *parser.OC_MultiplyDivideModuloExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_NodeLabel

func (cl *BaseCypherVisitor) VisitOC_NodeLabel(c *parser.OC_NodeLabelContext) interface{}

func (*BaseCypherVisitor) VisitOC_NodeLabels

func (cl *BaseCypherVisitor) VisitOC_NodeLabels(c *parser.OC_NodeLabelsContext) interface{}

func (*BaseCypherVisitor) VisitOC_NodePattern

func (cl *BaseCypherVisitor) VisitOC_NodePattern(c *parser.OC_NodePatternContext) interface{}

func (*BaseCypherVisitor) VisitOC_NotExpression

func (cl *BaseCypherVisitor) VisitOC_NotExpression(c *parser.OC_NotExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_NumberLiteral

func (cl *BaseCypherVisitor) VisitOC_NumberLiteral(c *parser.OC_NumberLiteralContext) interface{}

func (*BaseCypherVisitor) VisitOC_OrExpression

func (cl *BaseCypherVisitor) VisitOC_OrExpression(c *parser.OC_OrExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_ParenthesizedExpression

func (cl *BaseCypherVisitor) VisitOC_ParenthesizedExpression(c *parser.OC_ParenthesizedExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_PartialComparisonExpression

func (cl *BaseCypherVisitor) VisitOC_PartialComparisonExpression(c *parser.OC_PartialComparisonExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_Pattern

func (cl *BaseCypherVisitor) VisitOC_Pattern(c *parser.OC_PatternContext) interface{}

func (*BaseCypherVisitor) VisitOC_PatternElement

func (cl *BaseCypherVisitor) VisitOC_PatternElement(c *parser.OC_PatternElementContext) interface{}

func (*BaseCypherVisitor) VisitOC_PatternElementChain

func (cl *BaseCypherVisitor) VisitOC_PatternElementChain(c *parser.OC_PatternElementChainContext) interface{}

func (*BaseCypherVisitor) VisitOC_PatternPart

func (cl *BaseCypherVisitor) VisitOC_PatternPart(c *parser.OC_PatternPartContext) interface{}

func (*BaseCypherVisitor) VisitOC_PowerOfExpression

func (cl *BaseCypherVisitor) VisitOC_PowerOfExpression(c *parser.OC_PowerOfExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_ProjectionBody

func (cl *BaseCypherVisitor) VisitOC_ProjectionBody(c *parser.OC_ProjectionBodyContext) interface{}

func (*BaseCypherVisitor) VisitOC_ProjectionItem

func (cl *BaseCypherVisitor) VisitOC_ProjectionItem(c *parser.OC_ProjectionItemContext) interface{}

func (*BaseCypherVisitor) VisitOC_ProjectionItems

func (cl *BaseCypherVisitor) VisitOC_ProjectionItems(c *parser.OC_ProjectionItemsContext) interface{}

func (*BaseCypherVisitor) VisitOC_PropertyLookup added in v0.0.6

func (cl *BaseCypherVisitor) VisitOC_PropertyLookup(c *parser.OC_PropertyLookupContext) interface{}

func (*BaseCypherVisitor) VisitOC_PropertyOrLabelsExpression

func (cl *BaseCypherVisitor) VisitOC_PropertyOrLabelsExpression(c *parser.OC_PropertyOrLabelsExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_Query

func (cl *BaseCypherVisitor) VisitOC_Query(c *parser.OC_QueryContext) interface{}

func (*BaseCypherVisitor) VisitOC_ReadingClause

func (cl *BaseCypherVisitor) VisitOC_ReadingClause(c *parser.OC_ReadingClauseContext) interface{}

func (*BaseCypherVisitor) VisitOC_RegularQuery

func (cl *BaseCypherVisitor) VisitOC_RegularQuery(c *parser.OC_RegularQueryContext) interface{}

func (*BaseCypherVisitor) VisitOC_RelationshipDetail

func (cl *BaseCypherVisitor) VisitOC_RelationshipDetail(c *parser.OC_RelationshipDetailContext) interface{}

func (*BaseCypherVisitor) VisitOC_RelationshipPattern

func (cl *BaseCypherVisitor) VisitOC_RelationshipPattern(c *parser.OC_RelationshipPatternContext) interface{}

func (*BaseCypherVisitor) VisitOC_RelationshipTypes

func (cl *BaseCypherVisitor) VisitOC_RelationshipTypes(c *parser.OC_RelationshipTypesContext) interface{}

func (*BaseCypherVisitor) VisitOC_RelationshipsPattern added in v0.0.30

func (cl *BaseCypherVisitor) VisitOC_RelationshipsPattern(c *parser.OC_RelationshipsPatternContext) interface{}

func (*BaseCypherVisitor) VisitOC_Return

func (cl *BaseCypherVisitor) VisitOC_Return(c *parser.OC_ReturnContext) interface{}

func (*BaseCypherVisitor) VisitOC_SinglePartQuery

func (cl *BaseCypherVisitor) VisitOC_SinglePartQuery(c *parser.OC_SinglePartQueryContext) interface{}

func (*BaseCypherVisitor) VisitOC_SingleQuery

func (cl *BaseCypherVisitor) VisitOC_SingleQuery(c *parser.OC_SingleQueryContext) interface{}

func (*BaseCypherVisitor) VisitOC_Skip

func (cl *BaseCypherVisitor) VisitOC_Skip(c *parser.OC_SkipContext) interface{}

func (*BaseCypherVisitor) VisitOC_Statement

func (cl *BaseCypherVisitor) VisitOC_Statement(c *parser.OC_StatementContext) interface{}

VisitOC_Statement visit statement

func (*BaseCypherVisitor) VisitOC_StringListNullOperatorExpression

func (cl *BaseCypherVisitor) VisitOC_StringListNullOperatorExpression(c *parser.OC_StringListNullOperatorExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_StringOperatorExpression

func (cl *BaseCypherVisitor) VisitOC_StringOperatorExpression(c *parser.OC_StringOperatorExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_UnaryAddOrSubtractExpression

func (cl *BaseCypherVisitor) VisitOC_UnaryAddOrSubtractExpression(c *parser.OC_UnaryAddOrSubtractExpressionContext) interface{}

func (*BaseCypherVisitor) VisitOC_Variable

func (cl *BaseCypherVisitor) VisitOC_Variable(c *parser.OC_VariableContext) interface{}

func (*BaseCypherVisitor) VisitOC_Where

func (cl *BaseCypherVisitor) VisitOC_Where(c *parser.OC_WhereContext) interface{}

func (*BaseCypherVisitor) VisitOC_With added in v0.0.79

func (cl *BaseCypherVisitor) VisitOC_With(c *parser.OC_WithContext) interface{}

func (*BaseCypherVisitor) VisitOC_XorExpression

func (cl *BaseCypherVisitor) VisitOC_XorExpression(c *parser.OC_XorExpressionContext) interface{}

type ComparisonOperator

type ComparisonOperator int

type MultiplyDivideModuloOperator

type MultiplyDivideModuloOperator int

type ParsingError

type ParsingError struct {
	Line    int
	Column  int
	Message string
}

ParsingError represent a parsing error

type ParsingErrorListener

type ParsingErrorListener struct {
	*antlr.DefaultErrorListener
	Errors []ParsingError
}

ParsingErrorListener a listener for raising errors during parsing

func NewParsingErrorListener

func NewParsingErrorListener() *ParsingErrorListener

func (*ParsingErrorListener) SyntaxError

func (pel *ParsingErrorListener) SyntaxError(recognizer antlr.Recognizer, offendingSymbol interface{}, line, column int, msg string, e antlr.RecognitionException)

type QueryAddOrSubtractExpression

type QueryAddOrSubtractExpression struct {
	MultipleDivideModuloExpression QueryMultipleDivideModuloExpression
	PartialAddOrSubtractExpression []QueryPartialAddOrSubtractExpression
}

type QueryAndExpression

type QueryAndExpression struct {
	NotExpressions []QueryNotExpression
}

type QueryAtom

type QueryAtom struct {
	Variable                *string
	Literal                 *QueryLiteral
	FunctionInvocation      *QueryFunctionInvocation
	ParenthesizedExpression *QueryExpression
	RelationshipsPattern    *QueryRelationshipsPattern
}

type QueryComparisonExpression

type QueryComparisonExpression struct {
	AddOrSubtractExpression      QueryAddOrSubtractExpression
	PartialComparisonExpressions []QueryPartialComparisonExpression
}

type QueryCypher

type QueryCypher struct {
	QuerySinglePartQuery
}

QueryCypher the representation of the query in IL

func TransformCypher

func TransformCypher(query string) (*QueryCypher, error)

TransformCypher transform an openCypher query into a QueryCypher structure.

type QueryExpression

type QueryExpression struct {
	OrExpression QueryOrExpression
}

type QueryFunctionInvocation

type QueryFunctionInvocation struct {
	FunctionName string
	Expressions  []QueryExpression
	Distinct     bool
}

type QueryLiteral

type QueryLiteral struct {
	String  *string
	Integer *int64
	Double  *float64
	Boolean *bool
}

type QueryMatch

type QueryMatch struct {
	PatternElements []QueryPatternElement
	Where           *QueryExpression
}

type QueryMultipleDivideModuloExpression

type QueryMultipleDivideModuloExpression struct {
	PowerOfExpression                      QueryPowerOfExpression
	PartialMultipleDivideModuloExpressions []QueryPartialMultipleDivideModuloExpression
}

type QueryNodePattern

type QueryNodePattern struct {
	Variable string
	Labels   []string
}

type QueryNotExpression

type QueryNotExpression struct {
	Not                  bool
	ComparisonExpression QueryComparisonExpression
}

type QueryOrExpression

type QueryOrExpression struct {
	XorExpressions []QueryXorExpression
}

type QueryPartialAddOrSubtractExpression

type QueryPartialAddOrSubtractExpression struct {
	AddOrSubtractOperator          AddOrSubtractOperator
	MultipleDivideModuloExpression QueryMultipleDivideModuloExpression
}

type QueryPartialComparisonExpression

type QueryPartialComparisonExpression struct {
	ComparisonOperator      ComparisonOperator
	AddOrSubtractExpression QueryAddOrSubtractExpression
}

type QueryPartialMultipleDivideModuloExpression

type QueryPartialMultipleDivideModuloExpression struct {
	MultiplyDivideOperator MultiplyDivideModuloOperator
	QueryPowerOfExpression QueryPowerOfExpression
}

type QueryPatternElement

type QueryPatternElement struct {
	QueryNodePattern
	QueryPatternElementChains []QueryPatternElementChain
}

type QueryPatternElementChain

type QueryPatternElementChain struct {
	RelationshipPattern QueryRelationshipPattern
	NodePattern         QueryNodePattern
}

type QueryPowerOfExpression

type QueryPowerOfExpression struct {
	QueryUnaryAddOrSubtractExpressions []QueryUnaryAddOrSubtractExpression
}

type QueryProjectionBody

type QueryProjectionBody struct {
	Distinct        bool
	ProjectionItems []QueryProjectionItem
	Limit           *QueryExpression
	Skip            *QueryExpression
}

type QueryProjectionItem

type QueryProjectionItem struct {
	Expression QueryExpression
	Alias      string
}

type QueryPropertyOrLabelsExpression

type QueryPropertyOrLabelsExpression struct {
	Atom         QueryAtom
	PropertyKeys []string
}

type QueryRelationshipDetail

type QueryRelationshipDetail struct {
	Variable string
	Labels   []string
}

QueryRelationshipDetail object representing a relation [var:label]

type QueryRelationshipPattern

type QueryRelationshipPattern struct {
	RelationshipDetail *QueryRelationshipDetail
	LeftArrow          bool
	RightArrow         bool
}

type QueryRelationshipsPattern added in v0.0.30

type QueryRelationshipsPattern struct {
	QueryNodePattern
	QueryPatternElementChains []QueryPatternElementChain
}

type QuerySinglePartQuery

type QuerySinglePartQuery struct {
	QueryMatches    []QueryMatch
	ProjectionBody  QueryProjectionBody
	WithProjections []QueryWith
}

type QueryStringListNullOperatorExpression

type QueryStringListNullOperatorExpression struct {
	PropertyOrLabelsExpression QueryPropertyOrLabelsExpression
	StringOperatorExpression   []QueryStringOperatorExpression
}

type QueryStringOperatorExpression

type QueryStringOperatorExpression struct {
	PropertyOrLabelsExpression QueryPropertyOrLabelsExpression
	Operator                   StringOperator
}

type QueryUnaryAddOrSubtractExpression

type QueryUnaryAddOrSubtractExpression struct {
	StringListNullOperatorExpression QueryStringListNullOperatorExpression
	Negation                         bool
}

type QueryWith added in v0.0.79

type QueryWith struct {
	Where          *QueryExpression
	ProjectionBody QueryProjectionBody
}

type QueryXorExpression

type QueryXorExpression struct {
	AndExpressions []QueryAndExpression
}

type StringOperator

type StringOperator int
const (
	StartsWithOperator StringOperator = 0
	EndsWithOperator   StringOperator = 1
	ContainsOperator   StringOperator = 2
)

type VariableType

type VariableType int

VariableType represent a variable type

const (
	// Node represent the type of a node
	Node VariableType = iota
	// Edge represent the type of edge
	Edge VariableType = iota
	// Unknown represent an unknown type for a variable
	Unknown VariableType = iota
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL