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