# HG changeset patch # User Adam Chlipala # Date 1402843733 14400 # Node ID dfa35ca83d9230942df04dcc927fd1ad322e3233 # Parent 485570cb3b6eb1f99bd74572142959187bb99a47 'sql_injectable_prim' instance for 'url' diff -r 485570cb3b6e -r dfa35ca83d92 lib/ur/basis.urs --- a/lib/ur/basis.urs Sun Jun 15 09:27:41 2014 -0400 +++ b/lib/ur/basis.urs Sun Jun 15 10:48:53 2014 -0400 @@ -703,6 +703,7 @@ val atom : string -> css_value type url val css_url : url -> css_value +val sql_url : sql_injectable_prim url type css_property val property : string -> css_property val value : css_property -> css_value -> css_property diff -r 485570cb3b6e -r dfa35ca83d92 src/monoize.sml --- a/src/monoize.sml Sun Jun 15 09:27:41 2014 -0400 +++ b/src/monoize.sml Sun Jun 15 10:48:53 2014 -0400 @@ -2208,6 +2208,10 @@ ((L'.EAbs ("x", (L'.TFfi ("Basis", "string"), loc), (L'.TFfi ("Basis", "string"), loc), (L'.EFfiApp ("Basis", "sqlifyString", [((L'.ERel 0, loc), (L'.TFfi ("Basis", "string"), loc))]), loc)), loc), fm) + | L.EFfi ("Basis", "sql_url") => + ((L'.EAbs ("x", (L'.TFfi ("Basis", "string"), loc), (L'.TFfi ("Basis", "string"), loc), + (L'.EFfiApp ("Basis", "sqlifyString", [((L'.ERel 0, loc), (L'.TFfi ("Basis", "string"), loc))]), loc)), loc), + fm) | L.ECApp ((L.EFfi ("Basis", "sql_prim"), _), t) => let val t = monoType env t diff -r 485570cb3b6e -r dfa35ca83d92 tests/sqlurl.ur --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/sqlurl.ur Sun Jun 15 10:48:53 2014 -0400 @@ -0,0 +1,4 @@ +table t : { Url : url } + +task initialize = fn () => + dml (INSERT INTO t (Url) VALUES ({[bless "http://www.google.com/"]})) diff -r 485570cb3b6e -r dfa35ca83d92 tests/sqlurl.urp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/sqlurl.urp Sun Jun 15 10:48:53 2014 -0400 @@ -0,0 +1,6 @@ +database dbname=test +sql sqlurl.sql +rewrite url Sqlurl/* +allow url http://www.google.com/ + +sqlurl