Skip to content

Commit 382237c

Browse files
committed
Adding Oracle Dialect
1 parent 529bb20 commit 382237c

File tree

4 files changed

+30
-17
lines changed

4 files changed

+30
-17
lines changed

memory/repository/spring-ai-model-chat-memory-repository-jdbc/pom.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,7 @@
5050
<artifactId>spring-jdbc</artifactId>
5151
</dependency>
5252

53-
<dependency>
54-
<groupId>com.zaxxer</groupId>
55-
<artifactId>HikariCP</artifactId>
56-
</dependency>
57-
5853
<!-- TESTING -->
59-
6054
<dependency>
6155
<groupId>org.postgresql</groupId>
6256
<artifactId>postgresql</artifactId>
@@ -89,7 +83,13 @@
8983
<dependency>
9084
<groupId>com.oracle.database.jdbc</groupId>
9185
<artifactId>ojdbc8</artifactId>
92-
<version>21.13.0.0</version>
86+
<version>23.9.0.25.07</version>
87+
<scope>test</scope>
88+
</dependency>
89+
90+
<dependency>
91+
<groupId>org.springframework.boot</groupId>
92+
<artifactId>spring-boot-starter-jdbc</artifactId>
9393
<scope>test</scope>
9494
</dependency>
9595

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/OracleChatMemoryRepositoryDialect.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ public class OracleChatMemoryRepositoryDialect implements JdbcChatMemoryReposito
2727

2828
@Override
2929
public String getSelectMessagesSql() {
30-
return "SELECT content, type FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ? ORDER BY \"timestamp\"";
30+
return "SELECT content, type FROM SPRING_AI_CHAT_MEMORY WHERE CONVERSATION_ID = ? ORDER BY \"TIMESTAMP\"";
3131
}
3232

3333
@Override
3434
public String getInsertMessageSql() {
35-
return "INSERT INTO SPRING_AI_CHAT_MEMORY (conversation_id, content, type, \"timestamp\") VALUES (?, ?, ?, ?)";
35+
return "INSERT INTO SPRING_AI_CHAT_MEMORY (CONVERSATION_ID, CONTENT, TYPE, \"TIMESTAMP\") VALUES (?, ?, ?, ?)";
3636
}
3737

3838
@Override
@@ -42,7 +42,7 @@ public String getSelectConversationIdsSql() {
4242

4343
@Override
4444
public String getDeleteMessagesSql() {
45-
return "DELETE FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ?";
45+
return "DELETE FROM SPRING_AI_CHAT_MEMORY WHERE CONVERSATION_ID = ?";
4646
}
4747

4848
/**
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
1+
DROP TABLE SPRING_AI_CHAT_MEMORY;
2+
13
CREATE TABLE SPRING_AI_CHAT_MEMORY (
2-
conversation_id VARCHAR2(36) NOT NULL,
3-
content CLOB NOT NULL,
4-
type VARCHAR2(10) NOT NULL CHECK (type IN ('USER', 'ASSISTANT', 'SYSTEM', 'TOOL')),
5-
"timestamp" TIMESTAMP NOT NULL
4+
CONVERSATION_ID VARCHAR2(36 CHAR) NOT NULL,
5+
CONTENT CLOB NOT NULL,
6+
"TYPE" VARCHAR2(10 CHAR) NOT NULL CHECK (
7+
"TYPE" IN (
8+
'USER',
9+
'ASSISTANT',
10+
'SYSTEM',
11+
'TOOL'
12+
)
13+
),
14+
"TIMESTAMP" TIMESTAMP NOT NULL
615
);
716

8-
CREATE INDEX idx_conversation_id ON SPRING_AI_CHAT_MEMORY(conversation_id);
9-
CREATE INDEX idx_conversation_id_timestamp ON SPRING_AI_CHAT_MEMORY(conversation_id, "timestamp");
17+
CREATE INDEX SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX
18+
ON SPRING_AI_CHAT_MEMORY(
19+
CONVERSATION_ID,
20+
'TIMESTAMP'
21+
);

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryOracleIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
*/
2828

2929
@SpringBootTest
30-
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:oracle:21.3.0.0:///" })
30+
@TestPropertySource(properties = { "spring.datasource.url=jdbc:oracle:thin:@localhost:1521/FREEPDB1",
31+
"spring.datasource.username=scott", "spring.datasource.password=tiger" })
3132
@Sql(scripts = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-oracle.sql")
3233
public class JdbcChatMemoryRepositoryOracleIT extends AbstractJdbcChatMemoryRepositoryIT {
3334

0 commit comments

Comments
 (0)