Skip to content

Commit bd5dfe8

Browse files
Merge pull request #89 from simonvbrae/group_with_wildcard
Error when GROUP BY is used in a SELECT * query
2 parents 6303c0c + 28b0c38 commit bd5dfe8

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

lib/sparql.jison

+17-6
Original file line numberDiff line numberDiff line change
@@ -468,13 +468,21 @@ PrefixDecl
468468
}
469469
;
470470
SelectQuery
471-
: SelectClause DatasetClause* WhereClause SolutionModifier -> extend($1, groupDatasets($2), $3, $4)
471+
: SelectClauseWildcard DatasetClause* WhereClause SolutionModifierNoGroup -> extend($1, groupDatasets($2), $3, $4)
472+
| SelectClauseVars DatasetClause* WhereClause SolutionModifier -> extend($1, groupDatasets($2), $3, $4)
472473
;
473-
SubSelect
474-
: SelectClause WhereClause SolutionModifier ValuesClause? -> extend($1, $2, $3, $4, { type: 'query' })
474+
SelectClauseWildcard
475+
: SelectClauseBase '*' -> extend($1, {variables: [new Wildcard()]})
476+
;
477+
SelectClauseVars
478+
: SelectClauseBase SelectClauseItem+ -> extend($1, { variables: $2 })
475479
;
476-
SelectClause
477-
: 'SELECT' ( 'DISTINCT' | 'REDUCED' )? ( SelectClauseItem+ | '*' ) -> extend({ queryType: 'SELECT', variables: $3 === '*' ? [new Wildcard()] : $3 }, $2 && ($1 = lowercase($2), $2 = {}, $2[$1] = true, $2))
480+
SelectClauseBase
481+
: 'SELECT' ( 'DISTINCT' | 'REDUCED' )? -> extend({ queryType: 'SELECT'}, $2 && ($1 = lowercase($2), $2 = {}, $2[$1] = true, $2))
482+
;
483+
SubSelect
484+
: SelectClauseWildcard WhereClause SolutionModifierNoGroup ValuesClause? -> extend($1, $2, $3, $4, { type: 'query' })
485+
| SelectClauseVars WhereClause SolutionModifier ValuesClause? -> extend($1, $2, $3, $4, { type: 'query' })
478486
;
479487
SelectClauseItem
480488
: VAR -> toVar($1)
@@ -497,7 +505,10 @@ WhereClause
497505
: 'WHERE'? GroupGraphPattern -> { where: $2.patterns }
498506
;
499507
SolutionModifier
500-
: GroupClause? HavingClause? OrderClause? LimitOffsetClauses? -> extend($1, $2, $3, $4)
508+
: GroupClause? SolutionModifierNoGroup -> extend($1, $2)
509+
;
510+
SolutionModifierNoGroup
511+
: HavingClause? OrderClause? LimitOffsetClauses? -> extend($1, $2, $3)
501512
;
502513
GroupClause
503514
: 'GROUP' 'BY' GroupCondition+ -> { group: $3 }

0 commit comments

Comments
 (0)