Update of /cvsroot/monetdb/pathfinder/compiler/sql
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv4487/compiler/sql
Modified Files:
lalg2sql.brg
Log Message:
-- Improved the robustness and correctness of the sql-code-generation for the
serialize_rel(empty_tbl) tree pattern.
-- Extended the schema-information of the empty_tbl operator with types.
Index: lalg2sql.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/sql/lalg2sql.brg,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -d -r1.104 -r1.105
--- lalg2sql.brg 14 Jan 2008 23:26:55 -0000 1.104
+++ lalg2sql.brg 15 Jan 2008 13:57:13 -0000 1.105
@@ -2265,18 +2265,46 @@
/*
Let's generate a pseudo-query whose result is an empty table:
- SELECT -1 AS iter, -1 AS pos
+ SELECT -1 AS iter_nat, -1 AS pos_nat, ... AS item_...
FROM sysibm.sysdummy1 AS a0000
WHERE 1 = 0;
*/
+ PFsql_t *selectlist = NULL;
+ PFalg_schema_t schema = p->schema;
+ int count = schema.count;
+ for(int i = 0; i < count; i++)
+ {
+ PFalg_schm_item_t schemaItem = schema.items[i];
+
+ PFalg_att_t columnName = schemaItem.name;
+ PFalg_simple_type_t columnType = schemaItem.type;
+
+ PFsql_t* columnPseudoVal;
+ switch (columnType) {
+ case aat_nat: columnPseudoVal = lit_int (-1); break;
+ case aat_int: columnPseudoVal = lit_int (-1); break;
+ case aat_str: columnPseudoVal = lit_str (""); break;
+ case aat_dec: columnPseudoVal = lit_dec (-1); break;
+ default: columnPseudoVal = lit_int (-1); break;
+ }
+
+ selectlist =
+ select_list (
+ selectlist,
+ column_assign (
+ columnPseudoVal,
+ column_name(
+ new_col (
+ columnName,
+ columnType))));
+
+ }
/* call a helper function that does the 'real' job */
PFsql_t* final_query = PFsql_select (
false,
- select_list (
- column_assign (lit_int (-1), ITER_),
- column_assign (lit_int (-1), POS_)),
+ selectlist,
from_list(
alias_bind (
schema_table_name (
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins