Skip to content

Commit 819cdde

Browse files
committed
GaussDB不支持的特性
1 parent 52def79 commit 819cdde

File tree

4 files changed

+39
-66
lines changed

4 files changed

+39
-66
lines changed

.env.example

Lines changed: 0 additions & 34 deletions
This file was deleted.

gaussdb-derive-test/src/domains.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use gaussdb_test_helpers::*;
55
use std::error::Error;
66

77
#[test]
8+
#[ignore] // GaussDB doesn't support DOMAIN
89
fn defaults() {
910
#[derive(FromSql, ToSql, Debug, PartialEq)]
1011
struct SessionId(Vec<u8>);
@@ -31,6 +32,7 @@ fn defaults() {
3132
}
3233

3334
#[test]
35+
#[ignore] // GaussDB doesn't support DOMAIN
3436
fn name_overrides() {
3537
#[derive(FromSql, ToSql, Debug, PartialEq)]
3638
#[gaussdb(name = "session_id")]
@@ -58,6 +60,7 @@ fn name_overrides() {
5860
}
5961

6062
#[test]
63+
#[ignore] // GaussDB doesn't support DOMAIN
6164
fn wrong_name() {
6265
#[derive(FromSql, ToSql, Debug, PartialEq)]
6366
struct SessionId(Vec<u8>);
@@ -80,6 +83,7 @@ fn wrong_name() {
8083
}
8184

8285
#[test]
86+
#[ignore] // GaussDB doesn't support DOMAIN
8387
fn wrong_type() {
8488
#[derive(FromSql, ToSql, Debug, PartialEq)]
8589
#[gaussdb(name = "session_id")]
@@ -103,6 +107,7 @@ fn wrong_type() {
103107
}
104108

105109
#[test]
110+
#[ignore] // GaussDB doesn't support DOMAIN
106111
fn domain_in_composite() {
107112
#[derive(FromSql, ToSql, Debug, PartialEq)]
108113
#[gaussdb(name = "domain")]

tokio-gaussdb/tests/test/main.rs

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ async fn custom_enum() {
240240
}
241241

242242
#[tokio::test]
243-
#[cfg(feature = "opengauss")]
243+
#[ignore] // GaussDB doesn't support DOMAIN
244244
async fn custom_domain() {
245245
let client = connect("user=postgres").await;
246246

@@ -327,19 +327,13 @@ async fn custom_range() {
327327
}
328328

329329
#[tokio::test]
330-
#[ignore] // GaussDB simple query message format differences
331330
#[allow(clippy::get_first)]
332331
async fn simple_query() {
333-
// TODO: GaussDB简单查询消息格式差异
334-
// 原因:GaussDB的简单查询响应消息格式与PostgreSQL略有不同,消息数量或顺序存在差异
335-
// 错误:thread 'simple_query' panicked at: unexpected message
336-
// 影响:仅影响对消息格式严格验证的测试,实际查询功能完全正常
337-
// 解决方案:开发更灵活的消息验证逻辑,适应GaussDB的消息格式
338-
let client = connect("user=postgres").await;
332+
let client = connect("").await;
339333

340334
let messages = client
341335
.simple_query(
342-
"CREATE TABLE IF NOT EXISTS simple_query_test (
336+
"CREATE TEMPORARY TABLE simple_query_test (
343337
id INTEGER,
344338
name TEXT
345339
);
@@ -393,36 +387,44 @@ async fn simple_query() {
393387
command_completes >= 3,
394388
"Should have at least 3 command completes"
395389
);
396-
match &messages[3] {
397-
SimpleQueryMessage::Row(row) => {
398-
assert_eq!(row.columns().get(0).map(|c| c.name()), Some("id"));
399-
assert_eq!(row.columns().get(1).map(|c| c.name()), Some("name"));
400-
assert_eq!(row.get(0), Some("1"));
401-
assert_eq!(row.get(1), Some("steven"));
390+
391+
// 不再硬编码索引检查,而是遍历消息查找特定类型
392+
let mut row_messages = Vec::new();
393+
394+
for message in &messages {
395+
match message {
396+
SimpleQueryMessage::Row(_) => {
397+
row_messages.push(message);
398+
}
399+
_ => {}
402400
}
403-
_ => panic!("unexpected message"),
404401
}
405-
match &messages[4] {
406-
SimpleQueryMessage::Row(row) => {
407-
assert_eq!(row.columns().get(0).map(|c| c.name()), Some("id"));
408-
assert_eq!(row.columns().get(1).map(|c| c.name()), Some("name"));
409-
assert_eq!(row.get(0), Some("2"));
410-
assert_eq!(row.get(1), Some("joe"));
411-
}
412-
_ => panic!("unexpected message"),
402+
403+
// 确保我们至少有2行数据
404+
assert!(row_messages.len() >= 2, "Should have at least 2 Row messages");
405+
406+
// 检查第一行数据
407+
if let SimpleQueryMessage::Row(row) = &row_messages[0] {
408+
assert_eq!(row.columns().get(0).map(|c| c.name()), Some("id"));
409+
assert_eq!(row.columns().get(1).map(|c| c.name()), Some("name"));
410+
assert_eq!(row.get(0), Some("1"));
411+
assert_eq!(row.get(1), Some("steven"));
413412
}
414-
match messages[5] {
415-
SimpleQueryMessage::CommandComplete(2) => {}
416-
_ => panic!("unexpected message"),
413+
414+
// 检查第二行数据
415+
if let SimpleQueryMessage::Row(row) = &row_messages[1] {
416+
assert_eq!(row.columns().get(0).map(|c| c.name()), Some("id"));
417+
assert_eq!(row.columns().get(1).map(|c| c.name()), Some("name"));
418+
assert_eq!(row.get(0), Some("2"));
419+
assert_eq!(row.get(1), Some("joe"));
417420
}
418-
assert_eq!(messages.len(), 6);
419421
}
420422

421423
#[tokio::test]
422424
async fn cancel_query_raw() {
423-
let client = connect("user=postgres").await;
425+
let client = connect("user=gaussdb_tests password=gaussdb_tests123").await;
424426

425-
let socket = TcpStream::connect("127.0.0.1:5433").await.unwrap();
427+
let socket = TcpStream::connect("113.44.80.136:8000").await.unwrap();
426428
let cancel_token = client.cancel_token();
427429
let cancel = cancel_token.cancel_query_raw(socket, NoTls);
428430
let cancel = time::sleep(Duration::from_millis(100)).then(|()| cancel);
@@ -798,7 +800,7 @@ async fn copy_out() {
798800
async fn notices() {
799801
let long_name = "x".repeat(65);
800802
let (client, mut connection) = connect_raw(&format!(
801-
"user=gaussdb password=Gaussdb@123 dbname=postgres application_name={}",
803+
"host=113.44.80.136 port=8000 user=gaussdb_tests password=gaussdb_tests123 dbname=gaussdb_tests application_name={}",
802804
long_name,
803805
))
804806
.await

tokio-gaussdb/tests/test/types/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ async fn test_slice_range() {
496496
}
497497

498498
#[tokio::test]
499-
#[cfg(feature = "opengauss")]
499+
#[ignore] // GaussDB doesn't support Domain
500500
async fn domain() {
501501
#[derive(Debug, PartialEq)]
502502
struct SessionId(Vec<u8>);

0 commit comments

Comments
 (0)