Received: from u1.abs.net (root@u1.abs.net [207.114.0.131]) by hub.org (8.8.8/8.7.5) with ESMTP id LAA06149 for ; Fri, 17 Apr 1998 11:08:05 -0400 (EDT) Received: from insightdist.com (nobody@localhost) by u1.abs.net (8.8.5/8.8.5) with UUCP id KAA15851 for hackers@postgreSQL.org; Fri, 17 Apr 1998 10:59:22 -0400 (EDT) X-Authentication-Warning: u1.abs.net: nobody set sender to insightdist.com!byronn using -f Received: by insightdist.com (AIX 3.2/UCB 5.64/4.03) id AA30135; Fri, 17 Apr 1998 10:41:25 -0400 Received: from [3.0.0.50] by ceodev (AIX 4.1/UCB 5.64/4.03) id AA82164; Fri, 17 Apr 1998 10:37:03 -0400 Message-Id: <353769E2.D6F8A623@insightdist.com> Date: Fri, 17 Apr 1998 10:40:34 -0400 From: Byron Nikolaidis X-Mailer: Mozilla 4.05 [en] (Win95; I) Mime-Version: 1.0 To: "Thomas G. Lockhart" Cc: Paul Lisewski , "pgsql-interfaces@postgreSQL.org" , Postgres Hackers List Subject: Re: [HACKERS] Re: [INTERFACES] Re: ODBC driver References: <5ABEF3A77B39D111970F0020AFA04D29AE1F@mailbox.techone.com.au> <35367D36.18531358@insightdist.com> <3536C22F.A1F0978C@alumni.caltech.edu> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Suggested mappings would be a big help. Thanks, Byron Thomas G. Lockhart wrote: > > > {fn UCase(...) ODBC function is not supported. Are you planning > > > to support ODBC functions?? > > There are a ton of scalar functions that would need to be supported: > > Strings: ascii, char, concat, difference, insert, lcase, left, > > length, locate, ltrim, repeat, replace, right, rtrim, soundex, space, > > substring, ucase > > > > Numerics: abs, acos, asin, atan, atan2, ceiling, cos, cot, degrees, > > exp, floor, log, log10, mod, pi, power, radians, rand, round, sign, > > sin, sqrt, tan, truncate > > > > Dates: curdate, curtime, dayname, dayofmonth, dayofweek, dayofyear, > > hour, minute, month, monthname, now, quarter, second, timestampadd, > > timestampdiff, week, year > > > > System Functions: database, ifnull, user > > > > And of course, the granddaddy of all functions, CONVERT(). > > > > Now, some of the string functions like '{fn ucase()}' could fairly > > easily be mapped to the Postgres "Upper" function. But what about all > > the others? > > Should they be implemented in the driver or in the backend? Or do we > > just do the easy ones? > > Let's do both. Some already map to existing functions, which mean you > get to do this in your driver I suppose. Others, like many of the math > routines, should/could be in the backend. > > How do you want to organize attacking these? I can help now with > suggesting mappings for existing functions (e.g. date_part('dow', > datetime) gives you "dayofweek") and can help with new functions in a > month or two. Or, perhaps others can help with that more quickly... > > - Tom