Comments (5)
@mcxinyu, LAST_INSERT_ID
already exists, I had a go with a MySql version - see branch https://github.com/griffio/sqldelight-custom-dialect/tree/mysql
Seems to work ok - have a look and see if anything is different
from sqldelight.
@mcxinyu,
LAST_INSERT_ID
already exists, I had a go with a MySql version - see branch https://github.com/griffio/sqldelight-custom-dialect/tree/mysql Seems to work ok - have a look and see if anything is different
@griffio, Thank you so much, you gave me the correct answer.
from sqldelight.
Any functions that are not supported can be added here to the MySqlTypeResolver
A work-around that may work for you, at this moment, could be to enclose the function in additional parentheses (). e.g
INSERT INTO open_whitelists (userId, ip)
VALUES (?, (INET_ATON(?)));
This is valid in MySql and the SqlDelight compiler allows it as an expression without knowing the function.
from sqldelight.
Hello @griffio. It's really frustrating. I even referred to your sqldelight-custom-dialect project, but I did get an error prompt,
Compiling with dialect com.njf2016.sqldelight.MySqlCustomDialect
.../OpenWhitelists.sq: (18, 11): Unknown function LAST_INSERT_ID
18 SELECT LAST_INSERT_ID()
^^^^^^^^^^^^^^^^
Here is the implementation of this class. Do you have any suggestions?
class MySqlCustomDialect : SqlDelightDialect by MySqlDialect() {
override fun typeResolver(parentResolver: TypeResolver): TypeResolver {
return MySqlTypeCustomResolver(parentResolver)
}
class MySqlTypeCustomResolver(private val parentResolver: TypeResolver) :
TypeResolver by MySqlTypeResolver(parentResolver) {
override fun functionType(functionExpr: SqlFunctionExpr): IntermediateType? {
return when (functionExpr.functionName.text.lowercase()) {
"inet_aton" -> IntermediateType(PrimitiveType.TEXT)
"inet_ntoa" -> IntermediateType(PrimitiveType.TEXT)
else -> parentResolver.functionType(functionExpr)
}
}
}
}
from sqldelight.
At this point, the issue has been resolved, but I found that the sqldelight idea plugin seems to be abnormal.
from sqldelight.
Related Issues (20)
- Generated SQL queries when using * (asterisk) and join are not using an alias name, but the table name instead HOT 3
- jvm sqlite driver support splits native binary HOT 4
- java.io.IOException in GeneratedVirtualFile.kt:54
- PostgreSQL - AT TIME ZONE isn't supported HOT 2
- java.lang.LinkageError in ColumnTypeMixin.kt:157
- Behavior change in 2.x when coercing Boolean column types
- PostgreSQL - `SELECT FROM ( VALUES (), () )` expression is not supported HOT 2
- Add timescaledb dialect support
- java.util.NoSuchElementException in InsertStmtUtil.kt:47
- com.intellij.diagnostic.PluginException in PsiUtilCore.java:467
- Insert multiple values statement
- app.cash.sqldelight.gradle.VerifyMigrationTask$VerifyMigrationAction > 'void org.sqlite.core.NativeDB._open_utf8(byte[], int)'`
- app.cash.sqldelight.gradle.VerifyMigrationTask$VerifyMigrationAction > 'void org.sqlite.core.NativeDB._open_utf8(byte[], int)' HOT 2
- java.lang.Throwable in Logger.java:370
- IDE Plugin and gradle test task could be improved when adding a new migration for a NON NULL column? HOT 1
- PostgreSql Boolean Literals are compiling to Long
- java.io.IOException in GeneratedVirtualFile.kt:74
- SQLDelight plugin crashes Gradle build HOT 2
- java.lang.RuntimeException in ProjectService.kt:83
- SQLite: return Long instead of data class in SUM HOT 2
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 sqldelight.