protected override string GetFieldFunction(Irowsource qualifier, selectfield f, bool aliasthis) { string sx; switch (f.Function.func) { case selectfunctiondef.lpad: // LPad(field,length,'0') sx = String.Format("LPAD({0},{1},'{2}')", GetQualifiedFieldname(qualifier, f, true), f.PaddingLength, f.PaddingChar); break; case selectfunctiondef.ft_rownumber: /* introduced [dlatikay 20110922] for fulltext search */ sx = String.Format("MATCH(Chunk) AGAINST (?token)"); break; default: return(base.GetFieldFunction(qualifier, f, aliasthis)); } /* finalize */ if (f.AsName != null && f.AsName.Length > 0) { return(sx + " AS " + QuoteFieldname(f.AsName)); } else if (aliasthis) { return(sx + " AS " + QuoteFieldname(f.Fieldname)); } else { return(sx); } }
public void defaultqualifier_r(Irowsource q) { if (qualifier_r == null) { qualifier_r = q; } }
public string RegisterTable(Irowsource tableobject) { string alias; if (tableobject.subquery == null) { if (parent == null || (parent.TypeOfCommand != typeof(selectstatement) && parent.TypeOfCommand != typeof(insertselect))) { /* aliasing for tables/views */ alias = GetNextAlias(tableobject.Tablename, tableobject); } else { /* aliasing for subqueries */ alias = GetNextAlias("X", tableobject); } } else { /* aliasing for anonymous row sources (ad-hoc table expressions) */ alias = GetNextAlias("S", tableobject); } /* complete */ tableobject.AssignAlias(alias); return(alias); }
protected override string GetFieldFunction(Irowsource qualifier, selectfield f, bool aliasthis) { string sx; switch (f.Function.func) { case selectfunctiondef.lpad: // RIGHT(REPLICATE(N'0',18)+field1,18) sx = String.Format("RIGHT(REPLICATE(N'{1}',{0})+{2},{3})", f.PaddingLength, f.PaddingChar, GetQualifiedFieldname(qualifier, f, true), f.PaddingLength); break; case selectfunctiondef.month: /* [dlatikay 20110613] */ sx = String.Format("DATEPART(month,{0})", GetQualifiedFieldname(qualifier, f, true)); break; case selectfunctiondef.year: /* [dlatikay 20161021] */ sx = String.Format("DATEPART(year,{0})", GetQualifiedFieldname(qualifier, f, true)); break; case selectfunctiondef.hour: /* [dlatikay 20110613] */ sx = String.Format("DATEPART(hour,{0})", GetQualifiedFieldname(qualifier, f, true)); break; case selectfunctiondef.quarter: /* [dlatikay 20110613] */ sx = String.Format("DATEPART(quarter,{0})", GetQualifiedFieldname(qualifier, f, true)); break; case selectfunctiondef.dayofweek: /* [dlatikay 20110613] */ sx = String.Format("DATEPART(dw,{0})", GetQualifiedFieldname(qualifier, f, true)); /* ranging 1-7 */ break; case selectfunctiondef.ft_rownumber: /* introduced [dlatikay 20110922] for fulltext search */ sx = String.Format("ROW_NUMBER() OVER (ORDER BY F1.RANK DESC)"); /* DL90384902390423942HJHJ394839 */ RegisterParameter(new selectparam(db.MakeParamName("Token"), DbType.StringFixedLength, 255)); /* DL9284293042JJHJJ9899 for reason why this is here */ break; default: return(base.GetFieldFunction(qualifier, f, aliasthis)); } /* qualifier/asname logic */ if (f.AsName != null && f.AsName.Length > 0) { return(sx + " AS " + QuoteFieldname(f.AsName)); } else if (aliasthis) { return(sx + " AS " + QuoteFieldname(f.Fieldname)); } else { return(sx); } }
public void defaultqualifiers(Irowsource q) { defaultqualifier_l(q); if (is_binary) { defaultqualifier_r(q); } }
private string GetNextAlias(string name, Irowsource tableobject) { int i = -1; while (RowsourceAliases.ContainsKey(GetAlias(name, ++i))) { } ; string alias = GetAlias(name, i); RowsourceAliases.Add(alias, tableobject); /* got unique now */ return(alias); }
protected override string GetFieldFunction(Irowsource qualifier, selectfield f, bool aliasthis) { string sx; switch (f.Function.func) { case selectfunctiondef.lpad: // LPad(field,length,'0') sx = String.Format("LPad({0},{1},'{2}')", GetQualifiedFieldname(qualifier, f, true), f.PaddingLength, f.PaddingChar); break; case selectfunctiondef.sp_hoursworked1: /* added [dlatikay 20101124]: * cast(sum(hw.hoursworked/(to_date('01/'|| to_char(hw.calendarmonth+1) ||'/' || hw.calendaryear,'dd/mm/yyyy')-to_date('01/'|| hw.calendarmonth ||'/' || hw.calendaryear,'dd/mm/yyyy'))) as number(9,0)) * cast(sum({0}/(to_char(LAST_DAY(to_date('01/'|| CalendarMonth ||'/' || CalendarYear,'dd/mm/yyyy')),'DD'))) as number(9,0)) AS HoursWorked */ sx = String.Format("cast(sum({0}/(to_char(LAST_DAY(to_date('01/'|| CalendarMonth ||'/' || CalendarYear,'dd/mm/yyyy')),'DD'))) as number(9,0))", GetQualifiedFieldname(qualifier, f, true) ); break; case selectfunctiondef.month: /* [dlatikay 20110613] */ sx = String.Format("to_number(to_char({0},'MM'))", GetQualifiedFieldname(qualifier, f, true)); /* ranging 1-12 */ break; case selectfunctiondef.year: /* [dlatikay 20161021] */ sx = String.Format("to_number(to_char({0},'YYYY'))", GetQualifiedFieldname(qualifier, f, true)); /* ranging 0000-9999 */ break; case selectfunctiondef.hour: /* [dlatikay 20110613] */ sx = String.Format("to_number(to_char({0},'HH24'))", GetQualifiedFieldname(qualifier, f, true)); /* ranging 0-23 */ break; case selectfunctiondef.quarter: /* [dlatikay 20110613] */ sx = String.Format("to_number(to_char({0},'Q'))", GetQualifiedFieldname(qualifier, f, true)); /* ranging 1-4 */ break; case selectfunctiondef.dayofweek: /* [dlatikay 20110613] */ sx = String.Format("to_number(to_char({0},'D'))", GetQualifiedFieldname(qualifier, f, true)); /* ranging 1-7, as opposed to "W"! */ break; default: return(base.GetFieldFunction(qualifier, f, aliasthis)); } /* finalize */ if (f.AsName != null && f.AsName.Length > 0) { return(sx + " AS " + QuoteFieldname(f.AsName)); } else if (aliasthis) { return(sx + " AS " + QuoteFieldname(f.Fieldname)); } else { return(sx); } }