Cies
05/27/2025, 12:15 AMSET ROLE anon;
on Postgres, through SQLDelight?Cies
05/27/2025, 12:26 AMSELECT set_config();
Cies
05/27/2025, 12:26 AMCies
05/27/2025, 1:23 AMfun Database.setAnonRole(): QueryResult<Long> =
this.driver.execute(0, "SET ROLE anon;", 0)
{ check(this is JdbcPreparedStatement) }
Cies
05/27/2025, 1:25 AMthis.driver
is protected in abstract class BaseTransacterImpl(protected val driver: SqlDriver)
Cies
05/27/2025, 1:26 AMDatabaseImpl
is privateCies
05/27/2025, 1:28 AMeygraber
05/27/2025, 5:27 AMCies
05/27/2025, 7:09 AMeygraber
05/27/2025, 7:10 AMsetRole {
SET ROLE anon;
}
Cies
05/27/2025, 7:11 AMCies
05/27/2025, 7:12 AMCies
05/27/2025, 7:13 AMeygraber
05/27/2025, 7:19 AMSET ROLE
here
Best to file an issue.
Not sure how functions are setup for Postgres, but probably needs an issue filed for set_config
as well.Cies
05/27/2025, 7:21 AMCies
05/27/2025, 2:32 PMeygraber
05/27/2025, 2:33 PMSET ROLE
Cies
05/27/2025, 2:38 PMCies
05/27/2025, 2:46 PMSET LOCAL role = "anon";
But that give the same '{' expected, got ':'
error screenshotted before.Cies
05/27/2025, 3:06 PMgenerateMainDatabaseInterface
task completes w/o errors on (notice the squiggly red underline below the :
is there in IntelliJ):Cies
05/27/2025, 3:10 PMgenerateMainDatabaseInterface
fails on the code below with:
java.lang.StringIndexOutOfBoundsException: begin 0, end 6, length 1
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4606)
at java.base/java.lang.String.substring(String.java:2709)
at java.base/java.lang.String.subSequence(String.java:2747)
at kotlin.text.StringsKt__StringsKt.subSequence(Strings.kt:410)
at app.cash.sqldelight.core.SqlDelightEnvironment.detailText(SqlDelightEnvironment.kt:237)
at app.cash.sqldelight.core.SqlDelightEnvironment.errorMessage(SqlDelightEnvironment.kt:221)
at app.cash.sqldelight.core.SqlDelightEnvironment.generateSqlDelightFiles$lambda$6(SqlDelightEnvironment.kt:141)
at com.alecstrong.sql.psi.core.SqlCoreEnvironment.annotate$lambda$1$lambda$0(SqlCoreEnvironment.kt:139)
at com.alecstrong.sql.psi.core.SqlCoreEnvironment.annotate(SqlCoreEnvironment.kt:150)
at app.cash.sqldelight.core.SqlDelightEnvironment.generateSqlDelightFiles(SqlDelightEnvironment.kt:136)
at app.cash.sqldelight.gradle.SqlDelightTask$GenerateInterfaces.execute(SqlDelightTask.kt:98)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:107)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:76)
at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:176)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
at org.gradle.process.internal.worker.request.WorkerAction.lambda$run$1(WorkerAction.java:173)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:165)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Compiling with dialect app.cash.sqldelight.dialects.postgresql.PostgreSqlDialect
/home/cies/Repos/private/http4k-example/supabase-with-sql-and-jwt-ssr-example/src/main/sqldelight/com/example/organization/Organization.sq:14:6 '{' expected, got ':'
(the literal 'anon'
became a variable :roleName
, that's all -- maybe that's a know/by-design limitation of SQLDelight though)Cies
05/27/2025, 3:25 PMrole
to request.jwt.claims
the task generateMainDatabaseInterface
always errors, both with a literal value and with a variable value. Strange...Cies
05/27/2025, 3:29 PMrequest.jwt.claims
key, as keys w/o dots do not have this problem.