Swift-Kuery icon indicating copy to clipboard operation
Swift-Kuery copied to clipboard

Add binary and varbinary SQLDataType

Open Mladen-K opened this issue 6 years ago • 11 comments

Faster comparison and sorting of fields using binary and varbinary types in MySQL comparing to char and varchar. In case of binary/varbinary, comparison and sorting is based on the numeric values of the bytes in the values.

Mladen-K avatar Apr 11 '18 16:04 Mladen-K

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

CLAassistant avatar Apr 11 '18 16:04 CLAassistant

Codecov Report

Merging #124 into master will decrease coverage by 0.09%. The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master     #124     +/-   ##
=========================================
- Coverage   85.25%   85.16%   -0.1%     
=========================================
  Files          43       43             
  Lines        3575     3579      +4     
=========================================
  Hits         3048     3048             
- Misses        527      531      +4
Flag Coverage Δ
#SwiftKuery 85.16% <0%> (-0.1%) :arrow_down:
Impacted Files Coverage Δ
Sources/SwiftKuery/SQLDataType.swift 85.71% <0%> (-14.29%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 039375f...f4c1b1d. Read the comment docs.

codecov-io avatar Apr 11 '18 16:04 codecov-io

Hey @Mladen-K , do the 3 SQL platforms (PostgresSQL, MySQL, and SQLite) that we support use the same notation? What I mean is does the Binary Type in Swift always translate to binary in SQL for the 3 platforms.

EnriqueL8 avatar Apr 11 '18 16:04 EnriqueL8

In PostgreSQL, there are both data types, although they are represented as BIT and BIT VARYING. Without testing on working PostgreSQL database, I can't tell for sure wether the generated query will generate required fields with "binary" and "varbinary". SQLite doesn't support binary types...

Mladen-K avatar Apr 11 '18 16:04 Mladen-K

I believe that instead of hardcoding a string in SwiftKuery, ideally we should add a case to the QueryBuilder and then override the default binary in Swift-Kuery-PostgreSQL to BIT and the same for varbinary. There is also the need to research how we handle types not being available in all three platforms, and try to take the same approach for SQLite

EnriqueL8 avatar Apr 11 '18 18:04 EnriqueL8

Ok, I'll see what I can do.

Mladen-K avatar Apr 17 '18 16:04 Mladen-K

Thanks

EnriqueL8 avatar Apr 18 '18 09:04 EnriqueL8

http://www.sqlitetutorial.net/sqlite-data-types/ seems useful.

ianpartridge avatar Apr 18 '18 09:04 ianpartridge

Hey @Mladen-K , any news on this?

EnriqueL8 avatar May 30 '18 10:05 EnriqueL8

@EnriqueL8, Just haven't had time to check it out. Sure will do in next few days.

Mladen-K avatar May 30 '18 10:05 Mladen-K

Thanks!

EnriqueL8 avatar May 30 '18 10:05 EnriqueL8