Comments (5)
Yes, this is a good idea and I'll do it hopefully today.
On Sun, Aug 12, 2012 at 8:55 AM, Janne Hellsten [email protected]:
I see that SQLText stores its contents as a String. This may be a problem
for performance.Would it be possible to change it to ByteString instead? (I realize this
is an API change.)It's easy to go from ByteString to String, but going from String to
ByteString means increased memory thrashing.I realize that in some cases it's possible to work-around this by using
SQLBlob instead. But using the "columns" function after "step" means many
fields often get converted to Strings.—
Reply to this email directly or view it on GitHubhttps://github.com//issues/3.
-- Irene Knapp
from direct-sqlite.
Actually now that I think about it, how would you feel about it using Text?
Sent from my iPhone
On Aug 12, 2012, at 8:55 AM, Janne Hellsten [email protected] wrote:
I see that SQLText stores its contents as a String. This may be a problem for performance.
Would it be possible to change it to ByteString instead? (I realize this is an API change.)
It's easy to go from ByteString to String, but going from String to ByteString means increased memory thrashing.
I realize that in some cases it's possible to work-around this by using SQLBlob instead. But using the "columns" function after "step" means many fields often get converted to Strings.
�
Reply to this email directly or view it on GitHub.
from direct-sqlite.
I think both are fine. I've used ByteStrings throughout sqlite-simple now, but that's mainly because mysql-simple and postgresql-simple both used ByteStrings for everything (and a bit of Text too for utf8 conversion). I suppose sticking to ByteStrings would mean the user-facing API would depend on one less package/API. But I don't know how big of a worry that is, since my package requires text anyway.
I think I'll ask for convention guidance on database-devel.
from direct-sqlite.
If the two choices are even enough that we need to ask for community opinion, I guess that means you won't mind if I use my status as dictator of this particular package to declare that we'll use Text? Cause I'm doing that. :) I don't think the Text package is an exotic dependency; it deserves to be used pretty widely, since it's solid work and well-maintained. Mostly I'm choosing this because it means the user doesn't need to be concerned with how the text is actually encoded, once they have it out of the database; that's a useful property that they have with String and Text but not with ByteString.
from direct-sqlite.
Agreed. I'm looking forward to this change, ideally I would cut sqlite-simple over to the new API before my first release.
On 13.8.2012, at 1.43, Irene Knapp [email protected] wrote:
If the two choices are even enough that we need to ask for community opinion, I guess that means you won't mind if I use my status as dictator of this particular package to declare that we'll use Text? Cause I'm doing that. :) I don't think the Text package is an exotic dependency; it deserves to be used pretty widely, since it's solid work and well-maintained. Mostly I'm choosing this because it means the user doesn't need to be concerned with how the text is actually encoded, once they have it out of the database; that's a useful property that they have with String and Text but not with ByteString.
—
Reply to this email directly or view it on GitHub.
from direct-sqlite.
Related Issues (20)
- Enable math functions HOT 3
- Add built-tool-depends hsc2hs? HOT 2
- Expose setting sqlite3_busy_timeout
- Test suite failure with GHC 8
- How to add FTS5? HOT 5
- Any need to apply stat64 workaround? HOT 4
- Unreliable sqlErrorDetails in parallelized environments HOT 5
- Inaccurate version bound / build failure for GHC < 7.10 HOT 1
- Upgrading SQLite to v3.27.2
- Add a flag for compiling sqlite in Multi-thread mode HOT 3
- Upgrade embedded SQLite library HOT 2
- Test failure with system sqlite 3.34.1 HOT 1
- Nondeterministic `ErrorMisuse` on multiple runs of the same application test HOT 9
- Add Bindings to sqlite3_status and sqlite3_status64 HOT 1
- Slowness on `stepNoCB` HOT 1
- Updating test case for upgrading SQLite HOT 1
- Allow semigroup-0.20 HOT 1
- ICU extension flag HOT 3
- Allow opening sqllite from bytestring via sqllite3_deserialize directive HOT 4
- Can't use URI HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from direct-sqlite.