Skip to content

Instantly share code, notes, and snippets.

View prateeka's full-sized avatar

Prateek Asthana prateeka

View GitHub Profile
val idx = idxMinus + 1
val fd = hier.dimension
val uniqueName = MdxSelectorString(fd.name, hier.name)
val allMemberExpression = s"$uniqueName.[All]"
val (defaultMember, allMember) = hier.defaultMember match {
case AllMember =>
if (hier.isCalculationGroup) {
(s"${hier.uniqueName}.&[${fd.calculationGroup.get.defaultMember.name}]", None)
} else {
(allMemberExpression, Some(allMemberExpression))
@prateeka
prateeka / CalculationResolver.scala
Created August 30, 2022 07:38
atscale-3705: incorrect data type
case mpv: MemberPropertyValue[_] =>
calculationContext match {
case FilterCalculationContext(FilterFlatLevel(flatLevel)) =>
(mpv.property, mpv.typed) match {
case (_: MemberNameProperty | _: MemberCaption, _) =>
val v = resolveMDX(mpv.member)
v.physicalType match {
case _: VariableStringType | NullType => v
case _ => TypeConvertedValue(v, MaxStringType)
}
@prateeka
prateeka / MdxSpecialQueryHandler.scala
Created August 5, 2022 07:00
atscale-3705: mdxCell incorrectly showing `1`
def handleExcelUnionForTopCountAndBottomCount(cube: Cube, queryAxes: Map[Int, Axis], targetLevel: FlatLevel) = {
logger.warn("ExcelUnionBothTopBottomCount applied")
// As we go down levels we have to build out the names and keys
case class RowLevel(fl: FlatLevel, nameIndices: Seq[Int], keyIndices: Seq[Seq[Int]])
def getRowLevels(levels: IndexedSeq[FlatLevel], idx: Int, rowIdx: Int, prevRowLevel: Option[RowLevel]): Seq[RowLevel] = {
if (idx < levels.size) {
val (prevNameIndices, prevKeyIndices) = prevRowLevel.map { p => (p.nameIndices, p.keyIndices) }.getOrElse((Seq.empty, Seq.empty))
val level = levels(idx)
@prateeka
prateeka / SqlLanguage.scala
Created September 21, 2021 05:51
ATSCALE-4981 analysis
def makeSelectColumn(gb: GroupByType): Option[SelectColumn] = {
gb match {
case GroupByIgnore => None
case _: GroupByColumnNumber => None
case gbv@GroupByValue(_: ConstantValue, _) if findGroupByTypeColumn(gbv).isEmpty => None
case _ =>
val (exposed, expr) =
gb match {
case GroupByColumnName(name, _, Some(expression)) => (Some(name), expression)
case GroupByValue(_, expression) => (None, expression)
@prateeka
prateeka / SqlLanguage.scala
Last active September 18, 2021 10:45
atscale-4654: missing group-by clause in outbound query. reason for missing the group-by clause for the ticket are listed here compared to other cases which have group-by clause
def makeSelectColumn(gb: GroupByType): Option[SelectColumn] = {
gb match {
case GroupByIgnore => None
case _: GroupByColumnNumber => None
case gbv@GroupByValue(_: ConstantValue, _) if findGroupByTypeColumn(gbv).isEmpty => None
case _ =>
val (exposed, expr) =
gb match {
case GroupByColumnName(name, _, Some(expression)) => (Some(name), expression)
case GroupByValue(_, expression) => (None, expression)
@prateeka
prateeka / GraphPlanner.scala
Last active July 30, 2021 23:16
AggLogical-lastchild.lastchild-fail
AggregateLogical(
SelectedData(
ColumnData(SelectColumn(Some(c0),DimensionallyModifiedValue(AggregatedValue(AttributeValue(FlatAttribute(ef1dd654-da9a-42bc-77ef-ea4431bdeb4e: "salesamount1")),Sum),List(Child(Child(CurrentMember(FlatHierarchy(d525ca44-1aa7-4c19-bfa7-ed6e69040b00+1298889108: "Order Date Month Hierarchy")),false),false))),NoAggregation), NoAggregation, Some(c0))
),
AuxiliaryData(),
AggregateLogical(
SelectedData(
DimensionallyModifiedData(ValueData(AggregatedValue(AttributeValue(FlatAttribute(ef1dd654-da9a-42bc-77ef-ea4431bdeb4e: "salesamount1")),Sum),NoAggregation,Set(RawAttribute(FlatAttribute(ef1dd654-da9a-42bc-77ef-ea4431bdeb4e: "salesamount1"),Sum,Some(c_36))),Some(c_37)),List(Child(Child(CurrentMember(FlatHierarchy(d525ca44-1aa7-4c19-bfa7-ed6e69040b00+1298889108: "Order Date Month Hierarchy")),false),false)),Min,Some(c_37))
),
AuxiliaryData(),
@prateeka
prateeka / CalculationResolver.scala
Last active July 5, 2021 19:26
DistinctCount additionDistinctCount addition
case MdxFunctions.DistinctCount.Applied(valueSet :: HNil) =>
val resolvedVal = ConstantValue(5, IntType)
ComplexAggregatedValue(resolvedVal, resolveSetExpression(valueSet), core.DistinctCountExact)
@prateeka
prateeka / console_1.sql
Last active December 6, 2020 19:22
'All' level selecting 'min' member instead of 'firstChild' member
SELECT
MIN(t_129.c0) AS c0,
MIN(t_129.c_39) AS c1,
t_129.c2 AS c2,
t_129.c3s0 AS c3s0
FROM
(
SELECT
MIN(t_128.c0) AS c0,
MIN(t_128.c_39) AS c_39,
@prateeka
prateeka / console_1.sql
Created December 4, 2020 06:08
firstChild.name encountering sql group-by error.
SELECT
MIN(t_101.c_44) AS c0,
t_101.c1 AS c1,
t_101.c2s0 AS c2s0
FROM
(
SELECT
MIN(t_98.c_44) AS c_44,
COALESCE(t_100.c_45, t_98.c1) AS c1,
COALESCE(t_100.c_55, t_98.c2s0) AS c2s0
@prateeka
prateeka / firstChild_bug.json
Created November 27, 2020 06:25
virtualCube for firstChild calculating measure at "targetLevel" instead of "firstChild" level
OrderCube(
AggregateLogical(
SelectedData(
ColumnData(SelectColumn(Some(c0),AttributeValue(FlatAttribute(62874bbe-7ead-48ac-4496-8c7758b5aaa8: "orderquantity1")),Sum), Sum, Some(c0)),
ColumnData(SelectColumn(Some(c1),DimensionallyModifiedValue(AggregatedValue(AttributeValue(FlatAttribute(62874bbe-7ead-48ac-4496-8c7758b5aaa8: "orderquantity1")),Sum),List(Child(CurrentMember(FlatHierarchy(9bf44374-c106-4ab3-9c6a-d68474e9b25f+3938: "Product Dimension")),true))),NoAggregation), NoAggregation, Some(c1)),
ColumnData(SelectColumn(Some(c2),AttributeValue(FlatAttribute(2ff18d3a-894a-4be1-6d5c-39d97245160a: "Product Line")),AggregateGrouped(true)), AggregateGrouped(true), Some(c2)),
ColumnData(SelectColumn(Some(c3s0),KeyValue(FlatKey(3b0e5176-ca31-4706-a508-092e3c17daa2)),AggregateGrouped(true)), AggregateGrouped(true), Some(c3s0))
),
AuxiliaryData(),
UnionCubes(