Changeset 46:b74d143a7ef7


Ignore:
Timestamp:
03/13/12 18:39:36 (6 years ago)
Author:
Manos Karpathiotakis <mk@…>
Branch:
default
Message:

Seems that SRID has been correctly retrieved without further issues caused to the query string.
Will now attempt to appropriately create the Strabon Polyhedron

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • generaldb/src/main/java/org/openrdf/sail/generaldb/evaluation/GeneralDBEvaluation.java

    r44 r46  
    170170        public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(TupleExpr expr, 
    171171                        BindingSet bindings) 
    172                         throws QueryEvaluationException 
    173                         { 
     172                                        throws QueryEvaluationException 
     173                                        { 
    174174                if (expr instanceof GeneralDBSelectQuery) 
    175175                        return evaluate((GeneralDBSelectQuery)expr, bindings); 
     
    181181                } 
    182182                return super.evaluate(expr, bindings); 
    183                         } 
     183                                        } 
    184184        @Override 
    185185        public Value evaluate(ValueExpr expr, BindingSet bindings) 
    186         throws ValueExprEvaluationException, QueryEvaluationException 
    187         { 
     186                        throws ValueExprEvaluationException, QueryEvaluationException 
     187                        { 
    188188                if (expr instanceof Var) { 
    189189                        return evaluate((Var)expr, bindings); 
     
    193193                } 
    194194                return super.evaluate(expr, bindings); 
    195         } 
     195                        } 
    196196 
    197197        /** 
     
    246246        public Value evaluate(FunctionCall fc, BindingSet bindings) 
    247247        { 
    248 //              System.out.println("FunctionCall placeholder"); 
     248                //              System.out.println("FunctionCall placeholder"); 
    249249 
    250250                if(fc.getParentNode() instanceof Avg) 
     
    429429                        } 
    430430                        else { 
    431                         //Default Sesame Behavior 
     431                                //Default Sesame Behavior 
    432432                                List<ValueExpr> args = fc.getArgs(); 
    433433 
     
    502502        @Override 
    503503        public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(Group node, BindingSet bindings) 
    504         throws QueryEvaluationException 
    505         { 
     504                        throws QueryEvaluationException 
     505                        { 
    506506                //              Set<String> tmp1 = node.getAggregateBindingNames(); 
    507507                //              Set<String> tmp2 = node.getAssuredBindingNames(); 
     
    513513                //              } 
    514514                return new StSPARQLGroupIterator(this, node, bindings); 
    515         } 
     515                        } 
    516516 
    517517        @Override 
    518518        public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(Order node, BindingSet bindings) 
    519         throws QueryEvaluationException 
    520         { 
     519                        throws QueryEvaluationException 
     520                        { 
    521521                StSPARQLValueComparator vcmp = new StSPARQLValueComparator(); 
    522522                StSPARQLOrderComparator cmp = new StSPARQLOrderComparator(this, node, vcmp); 
     
    524524                long limit = getLimit(node); 
    525525                return new OrderIterator(evaluate(node.getArg(), bindings), cmp, limit, reduced); 
    526         } 
     526                        } 
    527527 
    528528        //Duplicated from EvaluationStrategyImpl 
     
    607607 
    608608        protected abstract CloseableIteration<BindingSet, QueryEvaluationException> evaluate(GeneralDBSelectQuery qb, BindingSet b) 
    609         throws UnsupportedRdbmsOperatorException, RdbmsQueryEvaluationException; 
     609                        throws UnsupportedRdbmsOperatorException, RdbmsQueryEvaluationException; 
    610610 
    611611        protected String toQueryString(GeneralDBSelectQuery qb, QueryBindingSet bindings, List<Object> parameters) 
    612         throws RdbmsException, UnsupportedRdbmsOperatorException 
    613         { 
     612                        throws RdbmsException, UnsupportedRdbmsOperatorException 
     613                        { 
    614614                GeneralDBQueryBuilder query = factory.createQueryBuilder(); 
    615615                if (qb.isDistinct()) { 
     
    643643                                                { 
    644644                                                        this.geoNames.put(var.getIndex()+2,var.getName()); 
     645                                                        //I am carrying SRID too! Therefore, shifting index one more position 
     646                                                        index++; 
    645647                                                } 
    646648                                                query.select(proj.getId()); 
     
    689691                        { 
    690692                                query.construct(expr); 
    691  
     693                                boolean increaseIndex = false; 
    692694 
    693695                                GeneralDBSpatialFuncInfo info = null; 
     
    709711                                        //WKB 
    710712                                        info = new GeneralDBSpatialFuncInfo((String) pairs.getKey(), typeOfField.WKB); 
     713                                        increaseIndex = true; 
    711714                                        break; 
    712715                                case 5:  
     
    719722                                //constructIndexesAndNames.put((String) pairs.getKey(),index++); 
    720723                                constructIndexesAndNames.put(info,index++); 
     724                                if(increaseIndex) 
     725                                { 
     726                                        //Increasing index by one more because of SRID! 
     727                                        //However, only in the case when the result is some geometry (e.g. not for metrics) 
     728                                        index++; 
     729                                } 
    721730                        } 
    722731                } 
     
    741750                } 
    742751                return query.toString(); 
    743         } 
     752                        } 
    744753 
    745754        /** 
  • postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java

    r43 r46  
    229229                                filter.closeBracket(); 
    230230 
     231                                //Adding srid field explicitly for my StrabonPolyhedron constructor later on! 
     232                                filter.appendComma(); 
     233                                filter.column(alias, "srid"); 
    231234                        } 
    232235                        else 
     
    285288 
    286289        //FIXME my addition from here on 
    287          
     290 
    288291        //Issue with this function: crashes when MathExpr is present in Select but does not 
    289292        //involve spatial variables! must escape this somehow 
    290293        @Override 
    291294        public GeneralDBQueryBuilder construct(GeneralDBSqlExpr expr) throws UnsupportedRdbmsOperatorException 
    292                         { 
     295        { 
    293296                if(!(expr instanceof GeneralDBSqlSpatialMetricBinary)  
    294297                                &&!(expr instanceof GeneralDBSqlSpatialMetricUnary) 
     
    310313                        dispatchUnarySqlOperator((UnaryGeneralDBOperator) expr, query.select); 
    311314                } 
     315                //SRID support must be explicitly added! 
     316 
    312317                return this; 
    313                         } 
     318        } 
    314319 
    315320        //Spatial Relationship Functions 
     
    787792                                        appendMBB((GeneralDBLabelColumn)(expr.getArg()),filter); 
    788793                                } 
    789          
     794 
    790795                                filter.closeBracket(); 
    791796                        } 
     
    798803 
    799804                filter.closeBracket(); 
    800         } 
     805                        } 
    801806 
    802807        @Override 
     
    10171022                //In the case where no variable is present in the expression! e.g ConvexHull("POLYGON((.....))") 
    10181023                boolean sridNeeded = true; 
     1024                //XXX Incorporating SRID 
     1025                String sridExpr = null; 
    10191026                 
    10201027                filter.openBracket(); 
     
    10341041                else 
    10351042                { 
    1036                         //XXX Incorporating SRID 
    1037                         String sridExpr = null; 
     1043                         
    10381044                        GeneralDBSqlExpr tmp = expr; 
    10391045                        if(tmp instanceof GeneralDBSqlSpatialConstructBinary && tmp.getParentNode() == null) 
     
    11761182                        /// 
    11771183                } 
    1178                 //} 
    11791184                filter.closeBracket(); 
     1185                //Used to explicitly include SRID 
     1186                if(expr instanceof GeneralDBSqlSpatialConstructBinary && expr.getParentNode() == null) 
     1187                { 
     1188                        filter.appendComma(); 
     1189                        filter.append(sridExpr); 
     1190                } 
     1191                 
    11801192                        } 
    11811193 
     
    11861198                //In the case where no variable is present in the expression! e.g ConvexHull("POLYGON((.....))") 
    11871199                boolean sridNeeded = true; 
     1200                String sridExpr = null; 
     1201 
    11881202                filter.openBracket(); 
    11891203 
     
    12081222                else 
    12091223                { 
    1210                         //XXX Incorporating SRID 
    1211                         String sridExpr = null; 
     1224 
    12121225                        GeneralDBSqlExpr tmp = expr; 
    12131226 
     
    12951308 
    12961309                        filter.closeBracket(); 
    1297                         //SRID Support 
     1310//                      //SRID Support 
    12981311                        if(sridNeeded) 
    12991312                        { 
     
    13101323 
    13111324                filter.closeBracket(); 
    1312  
     1325                //Used to explicitly include SRID 
     1326                if(expr instanceof GeneralDBSqlSpatialConstructUnary && expr.getParentNode() == null) 
     1327                { 
     1328                        filter.appendComma(); 
     1329                        filter.append(sridExpr); 
     1330                } 
     1331                 
    13131332                        } 
    13141333 
Note: See TracChangeset for help on using the changeset viewer.