protected virtual IDbQuery CreateSqlQueryReturningStructureIds(IQuery query)
        {
            var sqlExpression = SqlExpressionBuilder.Process(query);
            var formatter     = new SqlQueryFormatter
            {
                MainStructureTable   = query.StructureSchema.GetStructureTableName(),
                WhereAndSortingJoins = GenerateWhereAndSortingJoins(query, sqlExpression),
                WhereCriteria        = GenerateWhereCriteriaString(sqlExpression)
            };
            var parameters = GenerateParameters(query, sqlExpression);

            return(new DbQuery(formatter.Format(SqlStatements.GetSql("QueryReturningStructureIds")), parameters, query.IsCacheable));
        }