Hi,
Please note the quote is not at the right place, it should be:
conn.createStatement().execute(
"script to 'memFS:script.sql' compression gzip");
> I'm not sure how to clear the in-memory file to get that memory back or
how long it lasts in memory?
You could call FileUtils.delete().
But yes, maybe calling "script" and processing the result set is better.
Regards,
Thomas
On Thursday, January 2, 2014, Ryan How wrote:
> Sorry, I'm probably confusing you by getting off topic.
>
> I think memLZF just stores it compressed in memory. To compress it for
> transfer over the wire you want to alter this line to say
>
>
> To read it back you need to do the opposite process, I assume you write to
> the file in-memory with something like
>
> os = FilePath.get("memFS:script.sql").newOutputStream();
>
> then write to the output stream to populate the in-memory file.
>
> then
>
> conn.createStatement().execute("runscript memFS:script.sql COMPRESSION
> GZIP");
>
> I'm not sure how to clear the in-memory file to get that memory back or
> how long it lasts in memory?
>
> You might be safer just using SCRIPT TO, read the script from the result
> set, then transfer, then execute the script manually without using
> RUNSCRIPT... This in-memory file stuff might just be complicating it, but I
> think it's pretty nifty! :)
>
>
>
>
> On 2/01/2014 10:40 PM, Rob Oaks wrote:
>
> Just to be clear (and keeping in mind that I'm new to H2!), to run the
> in-memory script would I use:
>
>
>
> conn.createStatement().execute("runscript
> FilePath.get('memFS:script.sql')");
>
>
>
> Can I also substitute memLZF for memFS so that the compressed version of
> the string is being sent over the wire?
>
>
> On Thursday, January 2, 2014 6:39:21 AM UTC-5, 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]> wrote:
>
> On 2/01/2014 6:40 PM, Thomas Mueller wrote:
>
> --
> 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] <javascript:_e({},
> 'cvml', 'h2-database%[email protected]');>.
> To post to this group, send email to
> [email protected]<javascript:_e({}, 'cvml',
> '[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.