pl/dotnet은 PostgreSQL에 C# 및 F#에 대한 완전한 지원을 추가합니다. 0.99는 공개 베타 릴리스입니다. 우리는 그 놀라움을 세계와 공유하고 싶습니다.
이것은 베타 릴리스입니다. 사용을 환영하며 피드백을 환영합니다.
액세스 중:
자세한 내용은 아래를 참조하세요.
pl/dotnet은 PostgreSQL에서 C# 및 F#의 모든 기능을 제공합니다. 프로시저, 함수 및 트리거.
함수 생성 또는 교체dynamic_record_generator_srf(lim INT8)
SETOF 레코드를 반환합니다.
AS $$
upperLimit = lim.HasValue ? 임 : System.Int32.MaxValue;
for(long i=0;i<upperLimit;i++) Yield return new object?[] i, $"Number is i" ;
$$ 언어 plcsharp;
함수 생성 또는 교체 Dynamic_record_generator_srf_fsharp(lim INT8)
SETOF 레코드를 반환합니다.
AS $$
let upperLimit = Option.defaultValue (int64 System.Int32.MaxValue) lim
seq for i in 0L .. upperLimit - 1L 수율 [| 상자 나; $"숫자는 i입니다." |]
$$ 언어 plfsharp;
우리는 모든 SQL 함수 모드를 지원합니다:
우리는 40개의 PostgreSQL 유형을 지원하며 모두 NPGSQL 표준 닷넷 유형에 매핑됩니다. 주목할 만한 유일한 예외는 다중 범위, 열거형 및 구조체 유형입니다. 앞으로 추가할 예정입니다. 모든 데이터 유형은 null을 허용하고 전체 배열을 지원합니다. C# 및 F#에 대해 완전히 단위 테스트되었습니다. ((PostgreSQL의 목록으로 형식화됨) 유형: Dotnet 유형) 기술적인 이유로 테이블 대신.)
비트: 비트어레이부울: 부울상자: NpgsqlBoxbpchar: 문자열바이테아: 바이트[]cidr: (IP주소 주소, 내부 넷마스크)서클: NpgsqlCircle날짜: 날짜만날짜 범위: NpgsqlRange<DateOnly플로트4: 플로트float8: 더블inet: (IP주소 주소, 내부 넷마스크)int2: 짧은int4: INTint4range: NpgsqlRange<Intint8: 긴int8range: NpgsqlRange<긴간격: NpgsqlIntervaljson: 문자열라인: NpgsqlLinelseg: NpgsqlLSegmacaddr8: 물리적 주소macaddr: 물리적 주소돈: 십진수경로: NpgsqlPath포인트: NpgsqlPoint다각형: NpgsqlPolygon기록: 객체?[]텍스트: 문자열타임스탬프: 날짜/시간타임스탬프tz: 날짜/시간시간: 시간만timetz: DateTimeOffsettsrange: NpgsqlRange<DateTimetstzrange: NpgsqlRange<날짜시간uuid: 가이드varbit: 비트어레이varchar: 문자열무효: 공허xml: 문자열저희 SPI는 NPGSQL 클라이언트 라이브러리를 활용하여 기본 닷넷을 제공합니다. 기존 클라이언트 코드와 최대한 호환되는 구현입니다. 우리는 매우 낮은 수준에서 NPGSQL 호출을 가로채서 SPI 호출을 통한 클라이언트 프로토콜 처리; 그렇지 않으면 NPGSQL이 수정되지 않았습니다. 우리는 NPGSQL 테스트 스위트를 저장 프로시저로 가져왔고 사용하고 있습니다. 테스트용이므로 호환성을 매우 잘 이해할 수 있습니다. 수준.
호환성을 개선하고 기능을 추가하기 위한 작업이 남아 있습니다. 계속해서 실패하는 NPGSQL 테스트의 가장 큰 범주는 오류입니다. SPI는 NPGSQL과 다르게 예외를 발생시키기 때문입니다. 이러한 비호환성은 사소하지만 많습니다. 우리는 계속 노력하고 있습니다 개선해 보세요.
현재 테스트된 SPI 작업은 다음과 같습니다.
다중 범위, 열거형 및 복합/테이블 유형에 대한 지원이 부족합니다. 추가할 예정입니다.
우리의 SPI 구현에는 하위 트랜잭션과 같은 몇 가지 사소한 기능이 부족하며 때로는 NPGSQL과 다른(따라서 약간 호환되지 않는) 방식으로 오류가 발생합니다.
dpkg와 바이너리 출력을 모두 갖춘 사설 토토 사이트 빌드 시스템은 기능적이지만 원하는 만큼 깔끔하지는 않습니다.
우리는 이러한 문제를 해결하기 위한 코드 제출을 환영하며 시간이 지나면서 모든 문제를 개선할 수 있기를 바랍니다.
저희 운영 체제 지원:
커뮤니티의 의견을 환영합니다. 저희에게 연락하실 수 있습니다.GitHub 토론 포럼또는 다음 주소로 이메일을 보내주세요.pldotnet@brickabode.com.