Wow, I didn't realise you could use it out of the context of a H2
connection URL. That is pretty awesome :)
Thanks, Ryan
On 2/01/2014 7:39 PM, Thomas Mueller wrote:
Hi,
> SCRIPT TO mem:myobject COMPRESSION GZIP
You can do that already, using the H2 file system abstraction:
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import org.h2.store.fs.FilePath;
import org.h2.util.IOUtils;
public class TestSimpleDb {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection(
"jdbc:h2:mem:test");
conn.createStatement().execute(
"create table test(id int) as select 1");
conn.createStatement().execute(
"script to 'memFS:script.sql'");
InputStream in = FilePath.get(
"memFS:script.sql").newInputStream();
byte[] script = IOUtils.readBytesAndClose(in, -1);
System.out.println(new String(script, "UTF-8"));
}
}
Or you can just run "script" and process the result set.
Regards,
Thomas
On Thu, Jan 2, 2014 at 12:14 PM, Ryan How <[email protected]
<mailto:[email protected]>> wrote:
On 2/01/2014 6:40 PM, Thomas Mueller wrote:
> Would be nice if there was some java in-memory file abstraction
I don't understand, you can already use the file system
abstraction of H2. You can also use databases that persist to an
in-memory file system, using the database URL jdbc:h2:memFS:test
or jdbc:h2:memLZF:test. See also
http://h2database.com/html/advanced.html#file_system
I meant that because RUNSCRIPT reads from a file or a URL, it
would be good to be able to pass it file object that just points
to an in memory string. Nothing H2 specific, just a way to use the
java file API for accessing custom data structures.
So he could do something like SCRIPT TO mem:myobject COMPRESSION
GZIP, which would put the compressed data into some byte[] and
then transfer it, and then RUNSCRIPT mem:myobject COMPRESSION GZIP
which reads from the byte array. Would save all the custom
compressing / uncompressing and manually executing the SQL
statements. Not that it would be hard...
--
You received this message because you are subscribed to the Google
Groups "H2 Database" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:h2-database%[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google
Groups "H2 Database" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.