Update of /cvsroot/monetdb/pathfinder/compiler/sql
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv30829

Modified Files:
      Tag: XQuery_0-24
        lalg2sql.brg 
Log Message:
Fixing Bug I introduced yesterday.


U lalg2sql.brg
Index: lalg2sql.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/sql/lalg2sql.brg,v
retrieving revision 1.133.2.2
retrieving revision 1.133.2.3
diff -u -d -r1.133.2.2 -r1.133.2.3
--- lalg2sql.brg        30 Jun 2008 09:01:49 -0000      1.133.2.2
+++ lalg2sql.brg        1 Jul 2008 07:02:34 -0000       1.133.2.3
@@ -4371,20 +4371,20 @@
                 bool             asc, cols_added;
                 rank_map_t      *rank_map;
 
-                               
-                               
-                               PFsql_t *expr;
-                               PFalg_simple_type_t expr_ty;
-                               
+                
+                
+                PFsql_t *expr;
+                PFalg_simple_type_t expr_ty;
+                
 
                 for (i = 0; i < PFord_count (sortby); i++) {
-                    ord = PFord_order_col_at (sortby, i);                      
                
+                    ord = PFord_order_col_at (sortby, i);                   
                     asc = PFord_order_dir_at (sortby, i) == DIR_ASC;
 
-                                       expr_ty = type_of (L(p), ord);
-                                       expr = col_env_lookup (COLMAP(L(p)),
-                                                  ord,
-                                                  expr_ty);
+                    expr_ty = type_of (L(p), ord);
+                    expr = col_env_lookup (COLMAP(L(p)),
+                                           ord,
+                                           expr_ty);
 
                     cols_added = false;
                     if (RANK_MAP(L(p)))
@@ -4407,10 +4407,14 @@
                     if (!cols_added)
                         *(PFsql_t **) PFarray_add (srtbylist)
                             = sortkey_item (
-                                       (expr->kind == sql_column_name ||
-                                                        expr->kind == 
sql_lit_int)
-                                                            ? expr
-                                                            : case_ (when 
(expr, TRUE_INT), else_ (FALSE_INT)),
+                                    /* different handling of boolean
+                                       types as search criterion */
+                                    (expr->kind == sql_column_name ||
+                                     expr->kind == sql_lit_int     ||
+                                     expr_ty    != aat_bln)
+                                         ? expr
+                                         : case_ (when (expr, TRUE_INT),
+                                                        else_ (FALSE_INT)),
                                   asc);
                 }
 
@@ -4436,25 +4440,29 @@
                 PFsql_t *srtbylist = NULL;
                 PFalg_att_t ord;
                 bool asc;
-                               PFsql_t* expr = NULL;
-                               PFalg_simple_type_t expr_ty;
+                PFsql_t* expr = NULL;
+                PFalg_simple_type_t expr_ty;
 
                 /* collect all sorting criteria */
                 for (int i = PFord_count (sortby) - 1; i >= 0; i--) {
                     ord = PFord_order_col_at (sortby, i);
                     asc = PFord_order_dir_at (sortby, i) == DIR_ASC;
 
-                                       expr_ty = type_of (L(p), ord);
-                                       expr = col_env_lookup (COLMAP(L(p)),
-                                                  ord,
-                                                  expr_ty);
+                    expr_ty = type_of (L(p), ord);
+                    expr = col_env_lookup (COLMAP(L(p)),
+                                           ord,
+                                           expr_ty);
 
                     srtbylist = sortkey_list (
                                     sortkey_item (
-                                                                           
(expr->kind == sql_column_name ||
-                                                                expr->kind == 
sql_lit_int)
-                                                                    ? expr
-                                                                    : case_ 
(when (expr, TRUE_INT), else_ (FALSE_INT)),
+                                        /* different handling of boolean
+                                           types as search criterion */
+                                        (expr->kind == sql_column_name ||
+                                         expr->kind == sql_lit_int     ||
+                                         expr_ty    != aat_bln)
+                                             ? expr
+                                             : case_ (when (expr, TRUE_INT),
+                                                      else_ (FALSE_INT)),
                                         asc),
                                     srtbylist);
                 }


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to