SqlSelectFromPb take a protobuf select struct and conver to SqlSelect
(pb *SqlSelectPb)
| 1093 | |
| 1094 | // SqlSelectFromPb take a protobuf select struct and conver to SqlSelect |
| 1095 | func SqlSelectFromPb(pb *SqlSelectPb) *SqlSelect { |
| 1096 | ss := SqlSelect{ |
| 1097 | Db: pb.GetDb(), |
| 1098 | Raw: pb.GetRaw(), |
| 1099 | Star: pb.GetStar(), |
| 1100 | Distinct: pb.GetDistinct(), |
| 1101 | Alias: pb.GetAlias(), |
| 1102 | Limit: int(pb.GetLimit()), |
| 1103 | Offset: int(pb.GetOffset()), |
| 1104 | isAgg: pb.GetIsAgg(), |
| 1105 | finalized: pb.GetFinalized(), |
| 1106 | schemaqry: pb.GetSchemaqry(), |
| 1107 | } |
| 1108 | if pb.Into != nil { |
| 1109 | ss.Into = &SqlInto{pb.GetInto()} |
| 1110 | } |
| 1111 | if pb.Where != nil { |
| 1112 | ss.Where = SqlWhereFromPb(pb.GetWhere()) |
| 1113 | } |
| 1114 | if pb.Having != nil { |
| 1115 | ss.Having = expr.NodeFromNodePb(pb.GetHaving()) |
| 1116 | } |
| 1117 | if pb.Projection != nil { |
| 1118 | ss.proj = ProjectionFromPb(pb.GetProjection()) |
| 1119 | } |
| 1120 | if len(pb.Columns) > 0 { |
| 1121 | ss.Columns = ColumnsFromPb(pb.GetColumns()) |
| 1122 | } |
| 1123 | if len(pb.GroupBy) > 0 { |
| 1124 | ss.GroupBy = ColumnsFromPb(pb.GetGroupBy()) |
| 1125 | } |
| 1126 | if len(pb.OrderBy) > 0 { |
| 1127 | ss.OrderBy = ColumnsFromPb(pb.GetOrderBy()) |
| 1128 | } |
| 1129 | if len(pb.From) > 0 { |
| 1130 | ss.From = make([]*SqlSource, len(pb.From)) |
| 1131 | for i, fpb := range pb.From { |
| 1132 | ss.From[i] = SqlSourceFromPb(fpb) |
| 1133 | } |
| 1134 | } |
| 1135 | if len(pb.With) > 0 { |
| 1136 | ss.With = make(u.JsonHelper) |
| 1137 | json.Unmarshal(pb.With, &ss.With) |
| 1138 | } |
| 1139 | return &ss |
| 1140 | } |
| 1141 | func (m *SqlSelect) IsAggQuery() bool { |
| 1142 | if m.isAgg || len(m.GroupBy) > 0 { |
| 1143 | return true |
no test coverage detected