<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/10/1d49d882787f296107a751452efeb4a7"
  from="Christophe TROESTLER &lt;debian00@t...&gt;"
  author="Christophe TROESTLER"
  date="2003-10-01T14:39:41"
  subject="Re: [Caml-list] Printf question"
  prev="2003/10/1d220b3f2e2d7062dfd40bd0036ab9d1"
  next="2003/10/15cffb22ff8e8b696d4063f578d6cf28"
  prev-in-thread="2003/09/474f99af107e1bbfcc557219f948e525"
  next-in-thread="2003/10/15cffb22ff8e8b696d4063f578d6cf28"
  prev-thread="2003/09/af0df626c6958917a44d73a20ec7b92e"
  next-thread="2003/09/a345094d85482a2e3e76d5c55a673402"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Printf question">
<msg 
  url="2003/09/a476c3641d7664ea1b5311f4023837c4"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-09-26T18:02:51"
  subject="[Caml-list] Printf question">
<msg 
  url="2003/09/86704a87263c65d6ad9648f1b1631004"
  from="Alain.Frisch@e..."
  author="Alain.Frisch@e..."
  date="2003-09-26T19:05:00"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/7d241948508bc940c899d6119b2506f8"
  from="Mike Potanin &lt;potanin@m...&gt;"
  author="Mike Potanin"
  date="2003-09-29T07:45:00"
  subject="Re: [Caml-list] Printf question">
</msg>
</msg>
<msg 
  url="2003/09/f2b0ca4ff07e570206d45d28f43dee77"
  from="Olivier Andrieu &lt;andrieu@i...&gt;"
  author="Olivier Andrieu"
  date="2003-09-27T00:11:20"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/8ac9c15db8208f3f57df91fe375cd54c"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-09-27T07:23:28"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/d4a4748c7530db7ada7b04e1ea493f7c"
  from="Basile Starynkevitch &lt;basile.starynkevitch@i...&gt;"
  author="Basile Starynkevitch"
  date="2003-09-27T08:20:10"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/c22a46444af4325ef0377e330dad39da"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-09-27T09:14:12"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/1363ed45c0d3ae6cceed105264811227"
  from="Maxence Guesdon &lt;maxence.guesdon@i...&gt;"
  author="Maxence Guesdon"
  date="2003-09-27T09:39:36"
  subject="Re: [Caml-list] Printf question">
</msg>
<msg 
  url="2003/09/2837836af89c5ec673a1f06d4d3ce5f0"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2003-09-29T16:42:49"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/0d1e3d85a3d3a0168331adfc000c1eba"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-09-29T18:13:51"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/54af687c4857044a0b23072333eb67e5"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2003-09-29T19:57:52"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/71deec5c336f22b61d83c8fae0c4cfb6"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-09-29T21:50:11"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/e6137235717f8a683ac0e28d9c47f3aa"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2003-09-29T22:37:32"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/090cc1b55ee9a57cb115dc2cd5ffd3fe"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-09-30T08:04:00"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/3b5607302324c2d62b5e994e2badd5bf"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2003-09-30T08:45:46"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/acf35c0f989fb78549e7cab6bb375cd5"
  from="Michal Moskal &lt;malekith@p...&gt;"
  author="Michal Moskal"
  date="2003-09-30T09:20:11"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/aaf73bc9901ab48e010376d2f7b2cb7b"
  from="Christophe TROESTLER &lt;debian00@t...&gt;"
  author="Christophe TROESTLER"
  date="2003-09-30T14:13:48"
  subject="Re: [Caml-list] Printf question">
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/09/90818c92b45392e1135989553ffc071e"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-09-30T13:19:24"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/09/474f99af107e1bbfcc557219f948e525"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2003-09-30T20:53:14"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/10/1d49d882787f296107a751452efeb4a7"
  from="Christophe TROESTLER &lt;debian00@t...&gt;"
  author="Christophe TROESTLER"
  date="2003-10-01T14:39:41"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/10/15cffb22ff8e8b696d4063f578d6cf28"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-10-01T14:57:55"
  subject="Re: [Caml-list] Printf question">
<msg 
  url="2003/10/140e0009d5f28941b9375b1b1744534b"
  from="Christophe TROESTLER &lt;debian00@t...&gt;"
  author="Christophe TROESTLER"
  date="2003-10-01T15:52:09"
  subject="[Caml-list] DBI (was: Printf question)">
</msg>
</msg>
<msg 
  url="2003/10/0fb89c8020aabb589aab1d9a22218f31"
  from="Florian Hars &lt;hars@b...&gt;"
  author="Florian Hars"
  date="2003-10-01T16:21:13"
  subject="Re: [Caml-list] Printf question">
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
On Tue, 30 Sep 2003, Pierre Weis &lt;pierre.weis@inria.fr&gt; wrote:
&gt; 
&gt; [...] two stages approach [...] eliminate the generation of
&gt; trivially wrong programs (wrong requests).
&gt; 
&gt; Mmm, this is interesting, [...]

Indeed.  So if I got what you say right, one should

1) Develop AST for SQL requests which would guarantee their internal
   coherence (and also write a tool for each DB engine that, for a
   given database, outputs a module (or so) to enable the checking of
   the query against the DB types (1)).

2) Develop Camlp4 macros that translate SQL requests into AST (a la
   "embedded SQL" rather than with strings -- AFAIK embedded SQL is
   normalized).  This would also solve the "binding to variables"
   problem.  One could conform to standard embedded SQL and/or provide
   forms that are more "functional", e.g.

     let FirstName, LastName =
        EXEC SQL SELECT OWNERFIRSTNAME, OWNERLASTNAME
        FROM ANTIQUEOWNERS
        WHERE BUYERID = :BuyerID in ...

   instead of

     EXEC SQL SELECT OWNERFIRSTNAME, OWNERLASTNAME
        INTO :FirstName, :LastName
        FROM ANTIQUEOWNERS
        WHERE BUYERID = :BuyerID in ...

   or

     let v1, v2, v3 = EXEC SQL FETCH ItemCursor in ...

   instead of

     EXEC SQL FETCH ItemCursor INTO :v1, :v2, :v3 in ...

3) Write, for each DB engine, an "evaluator" of the AST.

Once this is done (we need interested people here!!), if the source
compile the requests will be valid SQL queries and statically
typechecked against the DB (given (1)).

Is it possible to evaluate how much effort is needed to get to this
point?  Do people know where to find some (documented) AST for SQL
expressions?  What is the opinion of the existing DB interfaces
writers?

Cheers,
ChriS

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

