func (q *Query) query(in *SDK.QueryInput) (*QueryResult, error) { if !q.HasCondition() { errData := &DynamoError{} errData.AddMessage("condition is missing, you must specify at least one condition") return nil, errData } in.KeyConditionExpression = q.formatConditions() in.ExpressionAttributeValues = q.formatConditionValues() in.ExpressionAttributeNames = q.formatConditionNames() if q.HasIndex() { in.IndexName = String(q.index) } if q.HasLimit() { in.Limit = Long(q.limit) } req, err := q.table.db.client.Query(in) if err != nil { log.Error("[DynamoDB] Error in `Query` operation, table="+q.table.name, err) return nil, err } res := &QueryResult{ Items: req.Items, LastEvaluatedKey: req.LastEvaluatedKey, Count: *req.Count, ScannedCount: *req.ScannedCount, } return res, nil }