You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(120) |
Aug
(95) |
Sep
(95) |
Oct
(213) |
Nov
(114) |
Dec
(64) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(6) |
Feb
(134) |
Mar
(88) |
Apr
(28) |
May
(22) |
Jun
(15) |
Jul
(23) |
Aug
(2) |
Sep
(15) |
Oct
(2) |
Nov
(6) |
Dec
|
2005 |
Jan
(8) |
Feb
(6) |
Mar
|
Apr
(42) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(84) |
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
(84) |
Apr
(46) |
May
(40) |
Jun
(8) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <car...@us...> - 2006-03-13 12:29:55
|
Revision: 2 Author: carlosga_fb Date: 2006-03-13 04:29:48 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=2&view=rev Log Message: ----------- Created folder remotely Added Paths: ----------- pgsqlclient/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:25:29
|
Revision: 1 Author: carlosga_fb Date: 2006-03-13 04:19:42 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=1&view=rev Log Message: ----------- Added Paths: ----------- builds/ builds/win32/ builds/win32/Build.bat builds/win32/PgSqlClient.build changelog.txt changes.txt dos2unix.sh license.html license.txt makefile readme.txt source/ source/Mono.Security/ source/Mono.Security/LICENSE.TXT source/Mono.Security/Mono.Security/ source/Mono.Security/Mono.Security/AssemblyInfo.cs source/Mono.Security/Mono.Security/Mono.Math/ source/Mono.Security/Mono.Security/Mono.Math/BigInteger.cs source/Mono.Security/Mono.Security/Mono.Math.Prime/ source/Mono.Security/Mono.Security/Mono.Math.Prime/ConfidenceFactor.cs source/Mono.Security/Mono.Security/Mono.Math.Prime/PrimalityTests.cs source/Mono.Security/Mono.Security/Mono.Math.Prime.Generator/ source/Mono.Security/Mono.Security/Mono.Math.Prime.Generator/NextPrimeFinder.cs source/Mono.Security/Mono.Security/Mono.Math.Prime.Generator/PrimeGeneratorBase.cs source/Mono.Security/Mono.Security/Mono.Math.Prime.Generator/SequentialSearchPrimeGeneratorBase.cs source/Mono.Security/Mono.Security/Mono.Security/ source/Mono.Security/Mono.Security/Mono.Security/ASN1.cs source/Mono.Security/Mono.Security/Mono.Security/ASN1Convert.cs source/Mono.Security/Mono.Security/Mono.Security/BitConverterLE.cs source/Mono.Security/Mono.Security/Mono.Security/PKCS7.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/ source/Mono.Security/Mono.Security/Mono.Security.Cryptography/ARC4Managed.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/CryptoTools.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/HMAC.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/MD2.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/MD2Managed.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/MD5SHA1.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/PKCS1.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/PKCS8.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/RC4.cs source/Mono.Security/Mono.Security/Mono.Security.Cryptography/RSAManaged.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/Alert.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/CipherAlgorithmType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/CipherSuite.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/CipherSuiteCollection.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/CipherSuiteFactory.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ClientContext.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ClientRecordProtocol.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ContentType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/Context.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/DebugHelper.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/HandshakeState.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/HashAlgorithmType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SecurityCompressionType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SecurityProtocolType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ServerContext.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/ServerRecordProtocol.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SslCipherSuite.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SslHandshakeHash.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsCipherSuite.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsClientSettings.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsException.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsServerSettings.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsStream.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake/ source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake/ClientCertificateType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeType.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/ source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHelloDone.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/ source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificate.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificate.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsServerFinished.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsServerHello.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsServerHelloDone.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsServerKeyExchange.cs source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.csproj source/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.csproj.user source/Mono.Security/Mono.Security/Mono.Security.X509/ source/Mono.Security/Mono.Security/Mono.Security.X509/ITrustAnchors.cs source/Mono.Security/Mono.Security/Mono.Security.X509/PKCS12.cs source/Mono.Security/Mono.Security/Mono.Security.X509/TrustAnchors.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X501Name.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Builder.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509CRL.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Certificate.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509CertificateBuilder.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509CertificateCollection.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Chain.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509ChainStatusFlags.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Extension.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Extensions.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Store.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509StoreManager.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X509Stores.cs source/Mono.Security/Mono.Security/Mono.Security.X509/X520Attributes.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/ source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/AuthorityKeyIdentifierExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/BasicConstraintsExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/CRLDistributionPointsExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/CertificatePoliciesExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/ExtendedKeyUsageExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/GeneralNames.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/KeyAttributesExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/KeyUsageExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/NetscapeCertTypeExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/PrivateKeyUsagePeriodExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/SubjectAltNameExtension.cs source/Mono.Security/Mono.Security/Mono.Security.X509.Extensions/SubjectKeyIdentifierExtension.cs source/Mono.Security/README.TXT source/Mono.Security/changelog.txt source/PostgreSql/ source/PostgreSql/Data/ source/PostgreSql/Data/AssemblyInfo.cs source/PostgreSql/Data/Design/ source/PostgreSql/Data/Design/ParameterCollection/ source/PostgreSql/Data/Design/ParameterCollection/PgParameterCollectionEditor.cs source/PostgreSql/Data/Design/ParameterCollection/PgParameterConverter.cs source/PostgreSql/Data/PgTypes/ source/PostgreSql/Data/PgTypes/PgBox.cs source/PostgreSql/Data/PgTypes/PgCircle.cs source/PostgreSql/Data/PgTypes/PgLSeg.cs source/PostgreSql/Data/PgTypes/PgLine.cs source/PostgreSql/Data/PgTypes/PgPath.cs source/PostgreSql/Data/PgTypes/PgPoint.cs source/PostgreSql/Data/PgTypes/PgPolygon.cs source/PostgreSql/Data/PgTypes/PgTimeSpan.cs source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj.user source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.snk source/PostgreSql/Data/PostgreSqlClient/ source/PostgreSql/Data/PostgreSqlClient/PgCommand.cs source/PostgreSql/Data/PostgreSqlClient/PgCommandBuilder.cs source/PostgreSql/Data/PostgreSqlClient/PgConnection.cs source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs source/PostgreSql/Data/PostgreSqlClient/PgConnectionPool.cs source/PostgreSql/Data/PostgreSqlClient/PgConnectionStringBuilder.cs source/PostgreSql/Data/PostgreSqlClient/PgDataAdapter.cs source/PostgreSql/Data/PostgreSqlClient/PgDataReader.cs source/PostgreSql/Data/PostgreSqlClient/PgDbType.cs source/PostgreSql/Data/PostgreSqlClient/PgError.cs source/PostgreSql/Data/PostgreSqlClient/PgErrorCollection.cs source/PostgreSql/Data/PostgreSqlClient/PgException.cs source/PostgreSql/Data/PostgreSqlClient/PgInfoMessageEventArgs.cs source/PostgreSql/Data/PostgreSqlClient/PgInfoMessageEventHandler.cs source/PostgreSql/Data/PostgreSqlClient/PgNotificationEventArgs.cs source/PostgreSql/Data/PostgreSqlClient/PgNotificationEventHandler.cs source/PostgreSql/Data/PostgreSqlClient/PgParameter.cs source/PostgreSql/Data/PostgreSqlClient/PgParameterCollection.cs source/PostgreSql/Data/PostgreSqlClient/PgRowUpdatedEventArgs.cs source/PostgreSql/Data/PostgreSqlClient/PgRowUpdatedEventHandler.cs source/PostgreSql/Data/PostgreSqlClient/PgRowUpdatingEventArgs.cs source/PostgreSql/Data/PostgreSqlClient/PgRowUpdatingEventHandler.cs source/PostgreSql/Data/PostgreSqlClient/PgTransaction.cs source/PostgreSql/Data/PostgreSqlClient/PostgreSqlClientFactory.cs source/PostgreSql/Data/Protocol/ source/PostgreSql/Data/Protocol/InfoMessageCallback.cs source/PostgreSql/Data/Protocol/NotificationCallback.cs source/PostgreSql/Data/Protocol/PgAuthMethods.cs source/PostgreSql/Data/Protocol/PgBackendCodes.cs source/PostgreSql/Data/Protocol/PgCharset.cs source/PostgreSql/Data/Protocol/PgCharsetCollection.cs source/PostgreSql/Data/Protocol/PgClientError.cs source/PostgreSql/Data/Protocol/PgClientErrorCollection.cs source/PostgreSql/Data/Protocol/PgClientException.cs source/PostgreSql/Data/Protocol/PgClientMessageEventArgs.cs source/PostgreSql/Data/Protocol/PgClientMessageEventHandler.cs source/PostgreSql/Data/Protocol/PgClientNotificationEventArgs.cs source/PostgreSql/Data/Protocol/PgClientNotificationEventHandler.cs source/PostgreSql/Data/Protocol/PgCodes.cs source/PostgreSql/Data/Protocol/PgConnectionOptions.cs source/PostgreSql/Data/Protocol/PgDataType.cs source/PostgreSql/Data/Protocol/PgDbClient.cs source/PostgreSql/Data/Protocol/PgErrorCodes.cs source/PostgreSql/Data/Protocol/PgFieldDescriptor.cs source/PostgreSql/Data/Protocol/PgFrontEndCodes.cs source/PostgreSql/Data/Protocol/PgOutputPacket.cs source/PostgreSql/Data/Protocol/PgParameter.cs source/PostgreSql/Data/Protocol/PgResponsePacket.cs source/PostgreSql/Data/Protocol/PgRowDescriptor.cs source/PostgreSql/Data/Protocol/PgStatement.cs source/PostgreSql/Data/Protocol/PgStatementStatus.cs source/PostgreSql/Data/Protocol/PgType.cs source/PostgreSql/Data/Protocol/PgTypeCollection.cs source/PostgreSql/Data/Protocol/PgTypeFormat.cs source/PostgreSql/Data/Protocol/PgTypeStringFormats.cs source/PostgreSql/Data/Resources/ source/PostgreSql/Data/Resources/ToolBox/ source/PostgreSql/Data/Resources/ToolBox/PgCommand.bmp source/PostgreSql/Data/Resources/ToolBox/PgConnection.bmp source/PostgreSql/Data/Resources/ToolBox/PgDataAdapter.bmp source/PostgreSql/Data/Schema/ source/PostgreSql/Data/Schema/MetaData.xml source/PostgreSql/Data/Schema/PgColumns.cs source/PostgreSql/Data/Schema/PgIndexColumns.cs source/PostgreSql/Data/Schema/PgIndexes.cs source/PostgreSql/Data/Schema/PgPrimaryKeys.cs source/PostgreSql/Data/Schema/PgSchema.cs source/PostgreSql/Data/Schema/PgSchemaFactory.cs source/PostgreSql/Data/Schema/PgTables.cs source/PostgreSql/Data/Schema/TextFile1.txt source/PostgreSql.Data.PostgreSqlClient.sln source/PostgreSql.Data.PostgreSqlClient.suo source/SecureSocketLayer/ source/SecureSocketLayer/Mono/ source/SecureSocketLayer/Mono/Math/ source/SecureSocketLayer/Mono/Math/BigInteger.cs source/SecureSocketLayer/Mono/Math/Prime/ source/SecureSocketLayer/Mono/Math/Prime/ConfidenceFactor.cs source/SecureSocketLayer/Mono/Math/Prime/Generator/ source/SecureSocketLayer/Mono/Math/Prime/Generator/NextPrimeFinder.cs source/SecureSocketLayer/Mono/Math/Prime/Generator/PrimeGeneratorBase.cs source/SecureSocketLayer/Mono/Math/Prime/Generator/SequentialSearchPrimeGeneratorBase.cs source/SecureSocketLayer/Mono/Math/Prime/PrimalityTests.cs source/SecureSocketLayer/Mono/Security/ source/SecureSocketLayer/Mono/Security/ASN1.cs source/SecureSocketLayer/Mono/Security/ASN1Convert.cs source/SecureSocketLayer/Mono/Security/BitConverterLE.cs source/SecureSocketLayer/Mono/Security/Cryptography/ source/SecureSocketLayer/Mono/Security/Cryptography/ARC4Managed.cs source/SecureSocketLayer/Mono/Security/Cryptography/CryptoConvert.cs source/SecureSocketLayer/Mono/Security/Cryptography/CryptoTools.cs source/SecureSocketLayer/Mono/Security/Cryptography/MD2.cs source/SecureSocketLayer/Mono/Security/Cryptography/MD2Managed.cs source/SecureSocketLayer/Mono/Security/Cryptography/MD4.cs source/SecureSocketLayer/Mono/Security/Cryptography/MD4Managed.cs source/SecureSocketLayer/Mono/Security/Cryptography/PKCS1.cs source/SecureSocketLayer/Mono/Security/Cryptography/PKCS8.cs source/SecureSocketLayer/Mono/Security/Cryptography/RC4.cs source/SecureSocketLayer/Mono/Security/Cryptography/RSAManaged.cs source/SecureSocketLayer/Mono/Security/Cryptography/SHA224.cs source/SecureSocketLayer/Mono/Security/Cryptography/SHA224Managed.cs source/SecureSocketLayer/Mono/Security/Cryptography/SymmetricTransform.cs source/SecureSocketLayer/Mono/Security/PKCS7.cs source/SecureSocketLayer/Mono/Security/StrongName.cs source/SecureSocketLayer/Mono/Security/X509/ source/SecureSocketLayer/Mono/Security/X509/Extensions/ source/SecureSocketLayer/Mono/Security/X509/Extensions/AuthorityKeyIdentifierExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/BasicConstraintsExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/CRLDistributionPointsExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/CertificatePoliciesExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/ExtendedKeyUsageExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/GeneralNames.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/KeyAttributesExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/KeyUsageExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/NetscapeCertTypeExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/PrivateKeyUsagePeriodExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/SubjectAltNameExtension.cs source/SecureSocketLayer/Mono/Security/X509/Extensions/SubjectKeyIdentifierExtension.cs source/SecureSocketLayer/Mono/Security/X509/ITrustAnchors.cs source/SecureSocketLayer/Mono/Security/X509/PKCS12.cs source/SecureSocketLayer/Mono/Security/X509/TrustAnchors.cs source/SecureSocketLayer/Mono/Security/X509/X501Name.cs source/SecureSocketLayer/Mono/Security/X509/X509Builder.cs source/SecureSocketLayer/Mono/Security/X509/X509CRL.cs source/SecureSocketLayer/Mono/Security/X509/X509Certificate.cs source/SecureSocketLayer/Mono/Security/X509/X509CertificateBuilder.cs source/SecureSocketLayer/Mono/Security/X509/X509CertificateCollection.cs source/SecureSocketLayer/Mono/Security/X509/X509Extension.cs source/SecureSocketLayer/Mono/Security/X509/X509Extensions.cs source/SecureSocketLayer/Mono/Security/X509/X509Store.cs source/SecureSocketLayer/Mono/Security/X509/X509StoreManager.cs source/SecureSocketLayer/Mono/Security/X509/X509Stores.cs source/SecureSocketLayer/Mono/Security/X509/X520Attributes.cs source/SecureSocketLayer/Net/ source/SecureSocketLayer/Net/Security/ source/SecureSocketLayer/Net/Security/AuthenticatedStream.cs source/SecureSocketLayer/Net/Security/LocalCertificateSelectionCallback.cs source/SecureSocketLayer/Net/Security/Providers/ source/SecureSocketLayer/Net/Security/Providers/Common/ source/SecureSocketLayer/Net/Security/Providers/Common/Alert.cs source/SecureSocketLayer/Net/Security/Providers/Common/AlertDescription.cs source/SecureSocketLayer/Net/Security/Providers/Common/AlertLevel.cs source/SecureSocketLayer/Net/Security/Providers/Common/CipherSuite.cs source/SecureSocketLayer/Net/Security/Providers/Common/CipherSuiteCollection.cs source/SecureSocketLayer/Net/Security/Providers/Common/CipherSuiteFactory.cs source/SecureSocketLayer/Net/Security/Providers/Common/Client/ source/SecureSocketLayer/Net/Security/Providers/Common/Client/ClientHandshakeMessageGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Common/Client/ClientHandshakeMessageProcessor.cs source/SecureSocketLayer/Net/Security/Providers/Common/Client/ClientRecordDecryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/Client/ClientRecordEncryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/Client/ClientSecureAuthenticator.cs source/SecureSocketLayer/Net/Security/Providers/Common/Client/SecureClientProtocol.cs source/SecureSocketLayer/Net/Security/Providers/Common/ClientCertificateType.cs source/SecureSocketLayer/Net/Security/Providers/Common/CompressionMethodCollection.cs source/SecureSocketLayer/Net/Security/Providers/Common/ContentType.cs source/SecureSocketLayer/Net/Security/Providers/Common/HandshakeMessageType.cs source/SecureSocketLayer/Net/Security/Providers/Common/Helper.cs source/SecureSocketLayer/Net/Security/Providers/Common/ICompressionMethod.cs source/SecureSocketLayer/Net/Security/Providers/Common/IHandshakeMessageGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Common/IHandshakeMessageProcessor.cs source/SecureSocketLayer/Net/Security/Providers/Common/IRecordDecryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/IRecordEncryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/IRecordMACManager.cs source/SecureSocketLayer/Net/Security/Providers/Common/ISecureAuthenticator.cs source/SecureSocketLayer/Net/Security/Providers/Common/ISecureFactory.cs source/SecureSocketLayer/Net/Security/Providers/Common/ISecureKeyGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Common/ISecureKeyInfo.cs source/SecureSocketLayer/Net/Security/Providers/Common/ISecureProtocol.cs source/SecureSocketLayer/Net/Security/Providers/Common/IX509ChainValidator.cs source/SecureSocketLayer/Net/Security/Providers/Common/MemoryStreamEx.cs source/SecureSocketLayer/Net/Security/Providers/Common/NullCompressionMethod.cs source/SecureSocketLayer/Net/Security/Providers/Common/RecordDecryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/RecordEncryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/RecordReceivedCallback.cs source/SecureSocketLayer/Net/Security/Providers/Common/RecordReceivedEventHandler.cs source/SecureSocketLayer/Net/Security/Providers/Common/RecordSentCallback.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureAuthenticatorCallbacks.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureException.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureKeyGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureKeyInfo.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureProtocol.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureRecord.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureRecordCollection.cs source/SecureSocketLayer/Net/Security/Providers/Common/SecureSession.cs source/SecureSocketLayer/Net/Security/Providers/Common/Server/ source/SecureSocketLayer/Net/Security/Providers/Common/Server/ServerHandshakeMessageGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Common/Server/ServerHandshakeMessageProcessor.cs source/SecureSocketLayer/Net/Security/Providers/Common/Server/ServerRecordDecryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/Server/ServerRecordEncryptor.cs source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs source/SecureSocketLayer/Net/Security/Providers/Cryptography/ source/SecureSocketLayer/Net/Security/Providers/Cryptography/HMACSsl.cs source/SecureSocketLayer/Net/Security/Providers/Cryptography/HandshakeMessageHash.cs source/SecureSocketLayer/Net/Security/Providers/Cryptography/MD5SHA1.cs source/SecureSocketLayer/Net/Security/Providers/Cryptography/RSASslSignatureDeformatter.cs source/SecureSocketLayer/Net/Security/Providers/Cryptography/RSASslSignatureFormatter.cs source/SecureSocketLayer/Net/Security/Providers/Ssl/ source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/ source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslClientFactory.cs source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslClientRecordMACManager.cs source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslHandshakeMessageGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslHandshakeMessageProcessor.cs source/SecureSocketLayer/Net/Security/Providers/Ssl/Server/ source/SecureSocketLayer/Net/Security/Providers/Ssl/SslRecordMACManager.cs source/SecureSocketLayer/Net/Security/Providers/Ssl/SslSecureKeyGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Tls/ source/SecureSocketLayer/Net/Security/Providers/Tls/Client/ source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsClientFactory.cs source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsClientRecordMACManager.cs source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsHandshakeMessageGenerator.cs source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsHandshakeMessageProcessor.cs source/SecureSocketLayer/Net/Security/Providers/Tls/Server/ source/SecureSocketLayer/Net/Security/Providers/Tls/TlsRecordMACManager.cs source/SecureSocketLayer/Net/Security/Providers/Tls/TlsSecureKeyGenerator.cs source/SecureSocketLayer/Net/Security/RemoteCertificateValidationCallback.cs source/SecureSocketLayer/Net/Security/SslPolicyErrors.cs source/SecureSocketLayer/Net/Security/SslStream.cs source/SecureSocketLayer/Properties/ source/SecureSocketLayer/Properties/Resources.Designer.cs source/SecureSocketLayer/Properties/Resources.resx source/SecureSocketLayer/Properties/Settings.Designer.cs source/SecureSocketLayer/Properties/Settings.settings source/SecureSocketLayer/SecureSocketLayer.csproj source/SecureSocketLayer/SecureSocketLayer.csproj.user source/SecureSocketLayer/SecureSocketLayer.sln source/SecureSocketLayer/Security/ source/SecureSocketLayer/Security/Authentication/ source/SecureSocketLayer/Security/Authentication/AuthenticationException.cs source/SecureSocketLayer/Security/Authentication/CipherAlgorithmType.cs source/SecureSocketLayer/Security/Authentication/ExchangeAlgorithmType.cs source/SecureSocketLayer/Security/Authentication/HashAlgorithmType.cs source/SecureSocketLayer/Security/Authentication/SslProtocols.cs source/SecureSocketLayerTest/ source/SecureSocketLayerTest/Program.cs source/SecureSocketLayerTest/Properties/ source/SecureSocketLayerTest/Properties/AssemblyInfo.cs source/SecureSocketLayerTest/SecureSocketLayerTest.csproj source/UnitTests/ source/UnitTests/AssemblyInfo.cs source/UnitTests/PgArrayTest.cs source/UnitTests/PgBaseTest.cs source/UnitTests/PgCommandBuilderTest.cs source/UnitTests/PgCommandTest.cs source/UnitTests/PgConnectionTest.cs source/UnitTests/PgDataAdapterTest.cs source/UnitTests/PgDataReaderTest.cs source/UnitTests/PgDatabaseSchemaTest.cs source/UnitTests/PgGeometicTypesTest.cs source/UnitTests/PgTransactionTest.cs source/UnitTests/PostgreSql.Data.PgSqlClient.UnitTests.dll.config Added: builds/win32/Build.bat =================================================================== --- builds/win32/Build.bat (rev 0) +++ builds/win32/Build.bat 2006-03-13 12:19:42 UTC (rev 1) @@ -0,0 +1 @@ +c:\desarrollo\herramientas\nant\bin\nant > log.txt Added: builds/win32/PgSqlClient.build =================================================================== --- builds/win32/PgSqlClient.build (rev 0) +++ builds/win32/PgSqlClient.build 2006-03-13 12:19:42 UTC (rev 1) @@ -0,0 +1,685 @@ +<?xml version="1.0" encoding="utf-8" ?> +<project name="PostgreSql.Data.PgSqlClient" default="build-all"> + <!-- Project properties --> + <property + name="project.name" + value="PostgreSqlClient" + /> + <property + name="project.version" + value="1.0" + /> + <property + name="project.release.type" + value="rc1" + overwrite="false" + /> + <!-- nightly / dev / alpha / beta# / rc# / release --> + + <!-- Default Configuration --> + + <property + name="project.config" + value="debug" + /> + <property + name="build.debug" + value="true" + /> + <property + name="build.defines" + value="" + /> + + <!-- Platform specific properties. These are the defaults --> + <property + name="current.build.defines" + value="${build.defines}" + /> + <property + name="current.build.task" + value="build" + /> + <property + name="current.build.help.task" + value="build-help" + /> + + <!-- Paths properties --> + <property + name="source.dir" value="../../../source" + /> + + <!-- Check for Html Help Compiler --> + <target + name="check-htmlhelp-compiler" + description="Checks existance of the HTML help compiler"> + + <if test="${property::exists('htmlhelp.compiler')}"> + <readregistry + property="htmlhelp.workshop.installroot" + key="SOFTWARE\Microsoft\HTML Help Workshop\InstallDir" + hive="CurrentUser" + failonerror="false" + /> + + <if test="${property::exists('htmlhelp.workshop.installroot')}"> + <property + name="htmlhelp.compiler" + value="${htmlhelp.workshop.installroot}\hhc.exe" + readonly="false" + /> + </if> + </if> + <if test="${not property::exists('htmlhelp.compiler')}"> + <sysinfo /> + <property + name="htmlhelp.compiler" + value="${sys.os.folder.programfiles}\HTML Help Workshop\hhc.exe" + readonly="false" + /> + </if> + </target> + + <!-- Check for NUnit --> + <target + name="check-nunit-framework" + depends="check-htmlhelp-compiler" + description="Checks existance of NUnit2"> + + <if test="${not property::exists('nunit.framework.dll')}"> + <sysinfo /> + <property + name="nunit.framework.dll" + value="C:\desarrollo\Herramientas\nunit\bin\nunit.framework.dll" + readonly="false" + /> + </if> + </target> + + <!-- Target for check build configuration --> + <target + name="check-build-config" + depends="check-nunit-framework" + description="Pre-build configuration checks"> + + <!-- Copy snk file --> + <copy + file="${source.dir}/FirebirdSql.Data.Firebird/FirebirdSql.Data.Firebird.snk" + todir="." + /> + </target> + + <!-- named project configurations (used by self-test and self-doc tasks) --> + <target name="debug" description="Perform a 'debug' build"> + <property name="project.config" value="debug" /> + <property name="build.debug" value="true" /> + <property + name="build.dir" + value="${nant.settings.currentframework}/bin/${project.config}" /> + </target> + + <target name="release" description="Perform a 'release' build"> + <property name="project.config" value="release" /> + <property name="build.debug" value="false" /> + <property + name="build.dir" + value="${nant.settings.currentframework}/bin/${project.config}" /> + </target> + + <!-- Build target for all existing platforms --> + <target + name="build-all" + depends="check-build-config" + description="Builds the provider for all available framework versions"> + + <if test="${framework::exists('mono-1.0')}"> + <call target="set-mono-1.0-framework-configuration"/> + <call target="build" /> + </if> + <if test="${framework::exists('net-1.1')}"> + <call target="set-net-1.1-framework-configuration"/> + <call target="build" /> + </if> + <if test="${framework::exists('net-2.0')}"> + <call target="set-net-2.0-framework-configuration"/> + <call target="build" /> + </if> + </target> + + <target + name="set-net-1.1-framework-configuration" + description="Configures the build for MS.NET Framework 1.1"> + + <property + name="nant.settings.currentframework" + value="net-1.1" + /> + <property + name="current.build.defines" + value="${build.defines}NET,NET_1_1" + dynamic="true" + /> + <property + name="link.sdkdoc.version" + value="SDK_v1_1" + /> + <property + name="link.sdkdoc.web" + value="false" + /> + </target> + + <target + name="set-net-2.0-framework-configuration" + description="Configures the build for MS.NET Framework 2.0"> + + <property + name="nant.settings.currentframework" + value="net-2.0" + /> + <property + name="current.build.defines" + value="${build.defines}NET,NET_2_0" + dynamic="true" + /> + <property + name="link.sdkdoc.version" + value="SDK_v1_1" + /> + <property + name="link.sdkdoc.web" + value="true" + /> + </target> + + <target + name="set-mono-1.0-framework-configuration" + description="Configures the build for mono:: 1.0"> + + <property + name="nant.settings.currentframework" + value="mono-1.0" + /> + <property + name="current.build.defines" + value="${build.defines}MONO,MONO_1_0" + dynamic="true" + /> + <property + name="link.sdkdoc.version" + value="SDK_v1_1" + /> + <property + name="link.sdkdoc.web" + value="false" + /> + </target> + + <!-- Build target for all existing platforms --> + <target name="build"> + <echo message="Using '${framework::get-target-framework()}' framework on '${platform::get-name()}' platform." /> + + <call target="${project.config}" /> + + <!-- Clean actual build directory --> + <delete + dir="${build.dir}" + failonerror="false" + /> + + <!-- Create actual build directory --> + <mkdir dir="${build.dir}" /> + + <csc + target="library" + output="${build.dir}/${nant.project.name}.dll" + doc="${build.dir}/${nant.project.name}.xml" + debug="${build.debug}" + define="${current.build.defines}"> + + <sources basedir="${source.dir}"> + <include name="FirebirdSql.Data.Common/**/*.cs"/> + </sources> + + <references> + <include name="System.dll"/> + <include name="System.Data.dll"/> + <include name="System.Drawing.dll"/> + <include name="System.XML.dll"/> + <include name="System.Windows.Forms.dll"/> + <!-- include name="C:\Archivos de programa\Microsoft Visual Studio .NET 2003\Common7\IDE\PublicAssemblies\VSLangProj.dll"/ --> + <!-- include name="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EnvDTE.dll"/ --> + </references> + + <arg value="/resource:${source.dir}/FirebirdSql.Data.Common/Resources/isc_error_msg.resources,FirebirdSql.Data.Common.Resources.isc_error_msg.resources"/> + <arg value="/resource:${source.dir}/FirebirdSql.Data.Firebird/Resources/FbConnection.bmp,FirebirdSql.Data.Firebird.Resources.FbConnection.bmp"/> + <arg value="/resource:${source.dir}/FirebirdSql.Data.Firebird/Resources/FbCommand.bmp,FirebirdSql.Data.Firebird.Resources.FbCommand.bmp"/> + <arg value="/resource:${source.dir}/FirebirdSql.Data.Firebird/Resources/FbDataAdapter.bmp,FirebirdSql.Data.Firebird.Resources.FbDataAdapter.bmp"/> + <arg value="/optimize+" /> + </csc> + + <!-- build and run FirebirdSql.Data.Firebird.UnitTest assembly --> + <call target="build-tests" failonerror="true" /> + <if test="${property::exists('run.tests')}"> + <call target="run-tests" failonerror="true" /> + </if> + </target> + + <target + name="build-tests" + description="Builds the NUnit test suite assembly"> + + <!-- Set build directory --> + <property + name="build.dir" + value="${nant.settings.currentframework}/bin/${project.config}" + /> + + <!-- Copy config file to build dir --> + <copy + file="${source.dir}/FirebirdSql.Data.Firebird.UnitTest/App.config" + tofile="${build.dir}/${nant.project.name}.UnitTest.dll.config" + /> + + <copy + file="${nunit.framework.dll}" + todir="${build.dir}" + /> + + <!-- compile FirebirdSql.Data.Firebird.UnitTest --> + <csc + target="library" + output="${build.dir}/${nant.project.name}.UnitTest.dll" + debug="${build.debug}" + define="${current.build.defines}"> + + <sources basedir="${source.dir}"> + <include name="FirebirdSql.Data.Firebird.UnitTest/**/*.cs"/> + </sources> + + <references> + <include name="System.dll" /> + <include name="System.Data.dll" /> + <include name="System.XML.dll" /> + <include name="${nunit.framework.dll}"/> + <include name="${build.dir}/FirebirdSql.Data.Common.dll" /> + <include name="${build.dir}/FirebirdSql.Data.Firebird.dll" /> + </references> + + <arg value="/optimize+" /> + </csc> + </target> + + <target name="run-tests" description="Runs the nunit tests"> + <!-- Set build directory --> + <property + name="build.dir" + value="${nant.settings.currentframework}/bin/${project.config}" + /> + + <nunit2> + <formatter + type="Xml" + usefile="true" + extension=".xml" + outputdir="${build.dir}" + /> + <test + assemblyname="${build.dir}/${nant.project.name}.UnitTest.dll" + appconfig="${build.dir}/${nant.project.name}.UnitTest.dll.config" + /> + </nunit2> + </target> + + <!-- SDK Build targets --> + <target + name="build-sdk" + depends="build-all" + description="Builds the SDK help file"> + + <!-- Check for Html Help compiler --> + <call + target="check-htmlhelp-compiler" + /> + + <!-- Framework version --> + <property + name="nant.settings.currentframework" + value="net-1.1" + /> + + <!-- Set build directory --> + <property + name="build.dir" + value="${nant.settings.currentframework}/bin/${project.config}" + /> + + <!-- Set sdk build directory --> + <property + name="build.sdk.dir" + value="${build.dir}/sdk" + /> + + <!-- Create html-help build directory --> + <mkdir + dir="${build.sdk.dir}" + failonerror="false" + /> + + <ndoc failonerror="false"> + <assemblies basedir="${build.dir}"> + <include name="${nant.project.name}.dll"/> + </assemblies> + + <documenters> + <documenter name="MSDN"> + <property name="OutputDirectory" value="${build.sdk.dir}" /> + <property name="OutputTarget" value="HtmlHelp" /> + <property name="SdkDocVersion" value="${link.sdkdoc.version}" /> + <property name="SdkLinksOnWeb" value="${link.sdkdoc.web}" /> + <property name="HtmlHelpName" value="FirebirdNETProviderSDK" /> + <property name="IncludeFavorites" value="False" /> + <property name="Title" value="Firebird ADO.NET Provider SDK Documentation - v${project.version}" /> + <property name="SplitTOCs" value="False" /> + <property name="DefaulTOC" value="" /> + <property name="ShowVisualBasic" value="True" /> + <property name="Preliminary" value="${not(project.release.type=='release')}" /> + <property name="ShowMissingSummaries" value="${build.debug}" /> + <property name="ShowMissingRemarks" value="${build.debug}" /> + <property name="ShowMissingParams" value="${build.debug}" /> + <property name="ShowMissingReturns" value="${build.debug}" /> + <property name="ShowMissingValues" value="${build.debug}" /> + <property name="DocumentAttributes" value="True" /> + <property name="ShowTypeIdInAttributes" value="False" /> + <property name="DocumentInternals" value="False" /> + <property name="DocumentPrivates" value="False" /> + <property name="DocumentProtected" value="True" /> + <property name="DocumentEmptyNamespaces" value="False" /> + <property name="IncludeAssemblyVersion" value="False" /> + <property name="CopyrightText" value="Copyright (C) 2002-${datetime::get-year(datetime::now())} Carlos Guzman Alvarez" /> + <property name="CopyrightHref" value="http://www.firebirdsql.org" /> + <property name="EditorBrowsableFilter" value="Off" /> + </documenter> + </documenters> + </ndoc> + + <!-- Rename CHM file --> + <copy + file="${build.sdk.dir}/FirebirdNETProviderSDK.chm" + tofile="${build.dir}/FirebirdNETProviderSDK.chm" + /> + + <!-- Clean actual sdk build directory --> + <delete + dir="${build.sdk.dir}" + failonerror="false" + /> + </target> +</project> + + + + + +<?xml version="1.0" encoding="utf-8" ?> +<project name="PgSqlClient" default="release" basedir="." xmlnds="http://tempuri.org/nant-vs.xsd"> + <!-- Project properties --> + <property name="project.name" value="PgSqlClient" /> + <property name="project.FormalName" value="PostgreSql.Data.PgSqlClient" /> + <property name="project.version" value="1.0" /> + + <!-- Build properties --> + <property name="build.debug" value="true" /> + <property name="build.define" value="DEBUG" /> + + <!-- Paths properties --> + <property name="base.dir" value="." /> + <property name="base.build.dir" value="build" /> + <property name="build.dir" value="${base.build.dir}" /> + + <property name="tls.src.dir" value="Mono.Security" /> + <property name="src.dir" value="${project.FormalName}\source" /> + <property name="resources.dir" value="${src.dir}\Resources" /> + <property name="nunit.test.dir" value="PostgreSql.Data.PgSqlClient.UnitTests\source"/> + + <!-- Check for NUnit --> + <target name="check-nunit-framework"> + <if test="${not property::exists('nunit.framework.dll')}"> + <sysinfo /> + <property + name="nunit.framework.dll" + value="${sys.os.folder.programfiles}\NUnit 2.2.2\bin\nunit.framework.dll" + readonly="false" /> + </if> + </target> + + <!-- Target for check build configuration --> + <target name="check-build-config" depends="clean"> + <call target="check-nunit-framework" /> + </target> + + <!-- Target for clean destination directory --> + <target name="clean" description="cleans build directory"> + <delete dir="${build.dir}" failonerror="false" verbose="true" /> + </target> + + <!-- Target for build in DEBUG mode --> + <target name="debug" depends="clean"> + <property name="build.debug" value="true" /> + <call target="build-all" /> + </target> + + <!-- Target for build in RELEASE mode --> + <target name="release" depends="clean"> + <property name="build.debug" value="false" /> + <property name="build.define" value="_RELEASE" /> + <call target="build-all" /> + </target> + + <!-- Build target for all existing platforms --> + <target name="build-all" depends="check-build-config"> + <!-- Build --> + <if test="${framework::exists('net-1.0')}"> + <call target="net-1.0"/> + </if> + <if test="${framework::exists('net-1.1')}"> + <call target="net-1.1"/> + </if> + <if test="${framework::exists('net-2.0')}"> + <call target="net-2.0"/> + </if> + <if test="${framework::exists('mono-1.0')}"> + <call target="mono-1.0"/> + </if> + </target> + + <target name="net-1.0"> + <!-- .NET Framework 1.0 --> + <property name="nant.settings.currentframework" value="net-1.0" /> + + <echo message="Build using .NET Framework 1.0." /> + <call target="build-provider"/> + <if test="${property::exists('nunit.framework.dll')}"> + <call target="build-nunit-tests"/> + </if> + <call target="distribution"/> + </target> + + <target name="net-1.1"> + <!-- .NET Framework 1.1 --> + <property name="nant.settings.currentframework" value="net-1.1" /> + + <echo message="Build using .NET Framework 1.1." /> + <call target="build-provider"/> + <if test="${property::exists('nunit.framework.dll')}"> + <call target="build-nunit-tests"/> + </if> + <call target="distribution"/> + </target> + + <target name="net-2.0"> + <!-- .NET Framework 2.0 --> + <property name="nant.settings.currentframework" value="net-2.0" /> + + <echo message="Build using .NET Framework 2.0." /> + <call target="build-provider"/> + <if test="${property::exists('nunit.framework.dll')}"> + <call target="build-nunit-tests"/> + </if> + <call target="distribution"/> + </target> + + <target name="mono-1.0"> + <!-- mono:: 1.0 --> + <property name="nant.settings.currentframework" value="mono-1.0" /> + + <property name="build.define" value="${build.define};_MONO"/> + + <echo message="Build using mono:: 1.0." /> + <call target="build-provider-mono"/> + </target> + + <!-- Target for build TLS Assembly (Microsoft .NET) --> + <target name="build-tls"> + <property name="build.dir" value="${base.build.dir}\${nant.settings.currentframework}" /> + + <mkdir dir="${build.dir}" failonerror="false" /> + + <!-- compile Mono.Security.TLS --> + <csc output="${build.dir}\Mono.Security.Protocol.Tls.dll" target="library" define="${build.define}"> + <sources> + <include name="${tls.src.dir}/**/*.cs" /> + </sources> + <references> + <include name="System.dll" /> + <include name="System.Data.dll" /> + <include name="System.Drawing.dll" /> + <include name="System.XML.dll" /> + </references> + <arg value="/optimize+" /> + <arg value="/unsafe" /> + </csc> + </target> + + <!-- Taget for build PgSqlClient Data Provider (Microsoft .NET)--> + <target name="build-provider" depends="build-tls"> + <property name="build.dir" value="${base.build.dir}\${nant.settings.currentframework}" /> + + <!-- compile PostgreSql.Data.PgSqlClient --> + <csc output="${build.dir}\${project.FormalName}.dll" target="library" define="${build.define}" debug="${build.debug}"> + <sources> + <include name="${src.dir}/**/*.cs" /> + </sources> + <references> + <include name="System.dll" /> + <include name="System.Data.dll" /> + <include name="System.Design.dll"/> + <include name="System.Drawing.dll" /> + <include name="System.XML.dll" /> + <include name="${build.dir}/Mono.Security.Protocol.Tls.dll" /> + </references> + <arg value="/resource:${resources.dir}\Toolbox\PgConnection.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgConnection.bmp" /> + <arg value="/resource:${resources.dir}\Toolbox\PgCommand.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgCommand.bmp" /> + <arg value="/resource:${resources.dir}\Toolbox\PgDataAdapter.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgDataAdapter.bmp" /> + <arg value="/optimize+" /> + </csc> + </target> + + <!-- Taget for build TLS Assembly (mono::)--> + <target name="build-tls-mono"> + <property name="build.dir" value="${base.build.dir}\${nant.settings.currentframework}" /> + + <mkdir dir="${build.dir}" failonerror="false" /> + + <!-- compile Mono.Security.TLS --> + <csc output="${build.dir}\Mono.Security.Tls.dll" target="library" define="${build.define}"> + <sources> + <include name="${tls.src.dir}/**/*.cs" /> + </sources> + + <references> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.Data.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.Drawing.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.XML.dll" /> + </references> + <arg value="/optimize+" /> + <arg value="/unsafe" /> + </csc> + </target> + + <!-- Taget for build PgSqlClient Data Provider Assembly (mono::) --> + <target name="build-provider-mono" depends="build-tls-mono"> + <property name="build.dir" value="${base.build.dir}\${nant.settings.currentframework}" /> + + <!-- compile PostgreSql.Data.PgSqlClient --> + <csc output="${build.dir}\${project.FormalName}.dll" target="library" define="${build.define}"> + <sources> + <include name="${src.dir}/**/*.cs" /> + </sources> + + <references> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.Design.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.Data.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.Drawing.dll" /> + <include name="${nant.settings.currentframework.frameworkassemblydirectory}/System.XML.dll" /> + <include name="${build.dir}/Mono.Security.Tls.dll" /> + </references> + <arg value="/resource:${resources.dir}\Toolbox\PgConnection.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgConnection.bmp" /> + <arg value="/resource:${resources.dir}\Toolbox\PgCommand.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgCommand.bmp" /> + <arg value="/resource:${resources.dir}\Toolbox\PgDataAdapter.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgDataAdapter.bmp" /> + <arg value="/optimize+" /> + </csc> + </target> + + <!-- Target for build NUnit Test Suite --> + <target name="build-nunit-tests"> + <property name="build.dir" value="${base.build.dir}\${nant.settings.currentframework}" /> + + <copy todir="${build.dir}"> + <fileset basedir="${nunit.test.dir}/.."> + <include name="*.config" /> + </fileset> + </copy> + + <!-- compile PostgreSql.Data.PgSqlClient.Tests --> + <csc output="${build.dir}\${project.FormalName}.UnitTests.dll" target="library"> + <sources> + <include name="${nunit.test.dir}/**/*.cs" /> + </sources> + <references> + <include name="System.dll" /> + <include name="System.Data.dll" /> + <include name="System.XML.dll" /> + <include name="${nunit.framework.dll}"/> + <include name="${build.dir}/${project.FormalName}.dll" /> + </references> + <arg value="/optimize+" /> + </csc> + </target> + + <!-- Target for distribution --> + <target name="distribution"> + <property name="build.dir" value="${base.build.dir}\${nant.settings.currentframework}" /> + <property name="distribution.dir" value="${build.dir}\distribution" /> + + <mkdir dir="${distribution.dir}" failonerror="false" /> + + <!-- Copy needed files to distribution directory --> + <copy todir="${distribution.dir}"> + <fileset basedir="${build.dir}"> + <include name="*.dll" /> + <include name="*.config" /> + </fileset> + </copy> + + <copy todir="${distribution.dir}"> + <fileset basedir="."> + <include name="*.txt" /> + <include name="*.html" /> + </fileset> + </copy> + </target> +</project> Added: changelog.txt =================================================================== --- changelog.txt (rev 0) +++ changelog.txt 2006-03-13 12:19:42 UTC (rev 1) @@ -0,0 +1,1467 @@ +PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ +------------------------------------------------------- + + + +2005-05-25 Carlos Guzman Alvarez <car...@te...> + + * PostgreSQl.Data.PgSqlClient/NPgClient/PgDbClient.cs: + + - Correctly disable nagle algorithm (Patch #1207038) + +2005-04-14 Carlos Guzman Alvarez <car...@te...> + + * Fixed Tables, Views anbd Functions Privileges Schemas. + +2005-04-10 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgConnectionPool.cs: + + - Fixed problem getting a connection form the pool. (#1146422) + +2005-04-03 Carlos Guzman Alvarez <car...@te...> + + * Changes to improve exception handling. + +2005-01-31 Carlos Guzman Alvarez <car...@te...> + + * PostgreSQl.Data.PgSqlClient/NPgSqlClient/PgOutPutPacket.cs: + + - Fixed boolean parameters support. + + * PostgreSQl.Data.PgSqlClient/PgConnection.cs: + + - Fixed bug on Close MEthod while clearing + SSL handlers. + +2004-09-29 Carlos Guzman Alvarez <car...@te...> + + - Mayour update of the sources + + +2004-07-22 Carlos Guzman Alvarez <car...@te...> + + * USe PascalCase naming for private methods in all classes. + + +2004-06-12 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Fix regex usage (it waqs working in .NET but not in mono + i have sent an email to the mono list and i'm wainting for response + for now if it's a mono problem) + + +2004-06-09 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Fix for PgCommand.NextResult (Thanks to Sion for his feedback) + +2004-06-03 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgLayouts.cs: + + - Removed file. + + * PostgreSql.Data.PgSqlClient/PgResponsePacket.cs: + * PostgreSql.Data.PgSqlClient/PgOutputPacket.cs: + + - Improved Doubvle and Float read/write + +2004-05-31 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/FbConnection.cs: + * PostgreSql.Data.PgSqlClient/NPgClient/PgDbClient.cs: + + - Reworked information and notification message handling + using callbacks (delegates) + + +2004-05-09 Carlos Guzman Alvarez <car...@te...> + + * Sync Mono.Security stuff with mono beta 1 sources. + +2004-05-06 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql/Data/PgSqlClient/NPgClient/PgDbClient.cs: + + - Changes for patch (#948340) + ( Disable the nagle algorithm on socket setup ) + +2004-05-03 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PGSqlClient/PgCommand.cs: + + - Clenaup. + + + * PostgreSql.Data.PGSqlClient/NPgClient/PgOutputPacket.cs: + + - Fix bytea field handling. + +2004-05-02 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PGSqlClient/PgCommand.cs: + + - Changes on named parameters support. + +2004-04-26 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/Alert.cs: + * Mono.Security.Protocol.Tls/CipherSuite.cs: + * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/Context.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/SecurityCompressionType.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + * Mono.Security.Protocol.Tls/TlsClientSettings.cs: + + - Changes for fix FxCop Rules. + + * Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs: + + - Changes for fix FxCop Rules. + + +2004-04-10 Carlos Guzman Alvarez <car...@te...> + + * Started cleanup and unification of this keyword usage tasks. + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + * Mono.Security.Protocol.Tls/Alert.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + * Mono.Security.Protocol.Tls/Context.cs: + * Mono.Security.Protocol.Tls/TlsException.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs: + + - Reworked Alert and Exception (TlsException) handling. + + +2004-04-09 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/TlsClientSettings.cs: + + - Added new CertificateRSA property. + + * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: + + - Added two new methods: CreateSignature and VerifySignature. + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: + + - Added Ssl3 implementation. + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: + + - Added initial implementation. + + +2004-04-1 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: + * PostgreSql.Data.PgSqlClient/PgDataReader.cs: + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Improved implementations of Command, + Command builder and Data reader classes. + +2004-03-23 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: + + - Improved command builder implementation. + + +2004-03-17 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificate.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerKeyExchange.cs: + + - Initial implementation. + +2004-03-16 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/SslCipherSuite.cs: + + - Added changes for allow it to work as server or client. + + +2004-03-15 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/TlsStream.cs: + * Mono.Security.Protocol.Tls/CipherSuite.cs: + * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: + * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Cryptography/MD5SHA1.cs: + + - Use Buffer.BlockCopy instead of System.Array.Copy + + +2004-03-10 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + + - Implemented some server alerts. + + * Mono.Security.Protocol.Tls/Context.cs: + + - Added new RecordProtocol property. + + +2004-03-09 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerFinished.cs: + + - Fixed meesage type definition. + + * Mono.Security.Protocol.Tls/Ciphersuite.cs: + + - Added generation of the Server encryption algorithms. + + - Modified encryption/decription methods for work + as client or server as needed. + + * Mono.Security.Protocol.Tls/Ciphersuite.cs: + + - Added generation of the Server encryption algorithms. + + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs: + + - Finished processing of the message contents. + + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + + - Added new ProcessChangeCipherSpec method. + + * Mono.Security.Proto... [truncated message content] |
From: Carlos G. Á. <car...@us...> - 2006-03-12 21:55:52
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2572/Data/PostgreSqlClient Modified Files: PgDataReader.cs PgParameter.cs PgTransaction.cs Log Message: Bring sources to a buildable state Index: PgParameter.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgParameter.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgParameter.cs 14 Sep 2005 20:44:30 -0000 1.4 --- PgParameter.cs 12 Mar 2006 21:55:48 -0000 1.5 *************** *** 34,37 **** --- 34,38 ---- private DataRowVersion sourceVersion; private bool isNullable; + private bool sourceColumnNullMapping; private string parameterName; private string sourceColumn; *************** *** 42,46 **** private PgDbType providerType; private bool inferType; - private string sourceColumnNullMapping; private PgParameterCollection parent; --- 43,46 ---- *************** *** 153,167 **** } ! public override int Offset ! { ! get { throw new Exception("The method or operation is not implemented."); } ! set { throw new Exception("The method or operation is not implemented."); } ! } ! ! public override bool SourceColumnNullMapping ! { ! get { throw new Exception("The method or operation is not implemented."); } ! set { throw new Exception("The method or operation is not implemented."); } ! } #endregion --- 153,161 ---- } ! public override bool SourceColumnNullMapping ! { ! get { return this.sourceColumnNullMapping; } ! set { this.sourceColumnNullMapping = value; } ! } #endregion *************** *** 184,188 **** this.sourceVersion = DataRowVersion.Current; this.isNullable = false; ! this.providerType = PgDbType.VarChar; this.inferType = true; } --- 178,182 ---- this.sourceVersion = DataRowVersion.Current; this.isNullable = false; ! this.providerType = PgDbType.VarChar; this.inferType = true; } *************** *** 199,203 **** this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; } --- 193,197 ---- this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; } *************** *** 206,210 **** this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; this.size = size; } --- 200,204 ---- this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; this.size = size; } *************** *** 218,222 **** this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; this.size = size; this.sourceColumn = sourceColumn; --- 212,216 ---- this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; this.size = size; this.sourceColumn = sourceColumn; *************** *** 238,242 **** this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; this.size = size; this.direction = direction; --- 232,236 ---- this.inferType = false; this.parameterName = parameterName; ! this.providerType = dbType; this.size = size; this.direction = direction; Index: PgTransaction.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgTransaction.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgTransaction.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgTransaction.cs 12 Mar 2006 21:55:48 -0000 1.4 *************** *** 108,118 **** #region · IDisposable Methods · ! public override void Dispose() ! { ! this.Dispose(true); ! GC.SuppressFinalize(this); ! } ! ! private void Dispose(bool disposing) { if (!this.disposed) --- 108,112 ---- #region · IDisposable Methods · ! protected override void Dispose(bool disposing) { if (!this.disposed) Index: PgDataReader.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgDataReader.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PgDataReader.cs 13 Sep 2005 18:21:51 -0000 1.6 --- PgDataReader.cs 12 Mar 2006 21:55:48 -0000 1.7 *************** *** 93,103 **** #region · IDisposable methods · ! public override void Dispose() ! { ! this.Dispose(true); ! System.GC.SuppressFinalize(this); ! } ! ! private void Dispose(bool disposing) { if (!this.disposed) --- 93,97 ---- #region · IDisposable methods · ! protected override void Dispose(bool disposing) { if (!this.disposed) |
From: Carlos G. Á. <car...@us...> - 2005-09-28 15:49:22
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10432 Modified Files: PgColumns.cs Log Message: no message Index: PgColumns.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/PgColumns.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgColumns.cs 13 Sep 2005 18:21:51 -0000 1.2 --- PgColumns.cs 28 Sep 2005 15:49:10 -0000 1.3 *************** *** 28,58 **** string sql = "SELECT " + ! "null AS TABLE_CATALOG, " + ! "pg_namespace.nspname AS TABLE_SCHEMA, " + ! "pg_class.relname AS TABLE_NAME, " + ! "pg_attribute.attname AS COLUMN_NAME, " + ! "pg_attribute.atttypid AS DATA_TYPE, " + ! "cast(0 as int4) AS NUMERIC_PRECISION, " + ! "cast(0 as int4) AS NUMERIC_SCALE, " + ! "pg_attribute.attlen AS COLUMN_SIZE, " + ! "pg_attribute.attndims AS COLUMN_DIMENSIONS, " + ! "pg_attribute.attnum AS ORDINAL_POSITION, " + ! "pg_attrdef.adsrc AS COLUMN_DEFAULT, " + ! "pg_attribute.attnotnull AS IS_NOT_NULL, " + ! "(pg_depend.objid is not null) AS IS_AUTOINCREMENT, " + ! "case pg_attribute.attstorage " + ! "when 'p' THEN 'PLAIN' " + ! "when 'e' THEN 'EXTERNAL' "+ ! "when 'm' THEN 'MAIN' " + ! "when 'x' THEN 'EXTENDED' " + ! "END AS STORAGE, " + ! "pg_description.description AS DESCRIPTION " + ! "FROM pg_attribute " + ! "left join pg_class ON pg_attribute.attrelid = pg_class.oid " + ! "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + ! "left join pg_attrdef ON (pg_class.oid = pg_attrdef.adrelid AND pg_attribute.attnum = pg_attrdef.adnum) " + ! "left join pg_description ON (pg_attribute.attrelid = pg_description.objoid AND pg_attribute.attnum = pg_description.objsubid) " + ! "left join pg_depend ON (pg_attribute.attrelid = pg_depend.refobjid AND pg_attribute.attnum = pg_depend.refobjsubid AND pg_depend.deptype = 'i') " + ! "WHERE pg_attribute.attisdropped = false AND pg_attribute.attnum > 0 "; if (restrictions != null && restrictions.Length > 0) --- 28,49 ---- string sql = "SELECT " + ! "table_catalog, " + ! "table_schema, " + ! "table_name, " + ! "column_name, " + ! "data_type, " + ! "numeric_precision, " + ! "numeric_scale, " + ! "ordinal_position, " + ! "case is_nullable when true then false when false then true AS is_not_null, " + ! "column_default, " + ! "character_octet_length, " + ! "character_set_catalog, " + ! "character_set_schema, " + ! "character_set_name, " + ! "collation_catalog, " + ! "collation_schema, " + ! "collation_name, " + ! "FROM information_schema.columns "; if (restrictions != null && restrictions.Length > 0) *************** *** 61,64 **** --- 52,56 ---- if (restrictions.Length > 0) { + sql += String.Format(" and table_catalog = '{0}'", restrictions[1]); } *************** *** 66,70 **** if (restrictions.Length > 1 && restrictions[1] != null) { ! sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); } --- 58,62 ---- if (restrictions.Length > 1 && restrictions[1] != null) { ! sql += String.Format(" and table_schema = '{0}'", restrictions[1]); } *************** *** 72,76 **** if (restrictions.Length > 2 && restrictions[2] != null) { ! sql += String.Format(" and pg_class.relname = '{0}'", restrictions[1]); } --- 64,68 ---- if (restrictions.Length > 2 && restrictions[2] != null) { ! sql += String.Format(" and table_name = '{0}'", restrictions[1]); } *************** *** 78,86 **** if (restrictions.Length > 3 && restrictions[3] != null) { ! sql += String.Format(" and pg_attribute.attname = '{0}'", restrictions[2]); } } ! sql += " ORDER BY pg_namespace.nspname, pg_class.relname, pg_attribute.attnum"; return sql; --- 70,78 ---- if (restrictions.Length > 3 && restrictions[3] != null) { ! sql += String.Format(" and column_name = '{0}'", restrictions[2]); } } ! sql += " ORDER BY table_catalog, table_schema, table_name, ordinal_position"; return sql; |
From: Carlos G. Á. <car...@us...> - 2005-09-14 20:44:38
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28882 Modified Files: PgParameter.cs Added Files: PostgreSqlClientFactory.cs Log Message: no message --- NEW FILE: PostgreSqlClientFactory.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; using System.Data; using System.Data.Common; namespace PostgreSql.Data.PostgreSqlClient { public class PostgreSqlClientFactory : DbProviderFactory { #region · Static Fields · public static readonly PostgreSqlClientFactory Instance = new PostgreSqlClientFactory(); #endregion #region · Constructors · private PostgreSqlClientFactory() : base() { } #endregion #region · Properties · public override bool CanCreateDataSourceEnumerator { get { throw new Exception("The method or operation is not implemented."); } } #endregion #region · Methods · public override DbCommand CreateCommand() { return new PgCommand(); } public override DbCommandBuilder CreateCommandBuilder() { return new PgCommandBuilder(); } public override DbConnection CreateConnection() { return new PgConnection(); } public override DbConnectionStringBuilder CreateConnectionStringBuilder() { return new PgConnectionStringBuilder(); } public override DbDataAdapter CreateDataAdapter() { return new PgDataAdapter(); } public override DbParameter CreateParameter() { return new PgParameter(); } #endregion } } Index: PgParameter.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgParameter.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgParameter.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgParameter.cs 14 Sep 2005 20:44:30 -0000 1.4 *************** *** 16,20 **** */ - using System; using System.Data; --- 16,19 ---- |
From: Carlos G. Á. <car...@us...> - 2005-09-14 15:38:47
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17768 Modified Files: MetaData.xml Log Message: Continue the rework of the Schema support Index: MetaData.xml =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/MetaData.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MetaData.xml 13 Sep 2005 21:07:01 -0000 1.4 --- MetaData.xml 14 Sep 2005 15:38:39 -0000 1.5 *************** *** 1,100 **** <?xml version="1.0" standalone="yes"?> <NewDataSet> ! <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> ! <xs:element name="NewDataSet" msdata:IsDataSet="true"> ! <xs:complexType> ! <xs:choice minOccurs="0" maxOccurs="unbounded"> ! <xs:element name="MetaDataCollections" msdata:MinimumCapacity="9"> ! <xs:complexType> ! <xs:sequence> ! <xs:element name="CollectionName" type="xs:string" minOccurs="0" /> [...1125 lines suppressed...] ! </ReservedWords> ! <ReservedWords> ! <ReservedWord>SETOF</ReservedWord> ! </ReservedWords> ! <ReservedWords> ! <ReservedWord>SHOW</ReservedWord> ! </ReservedWords> ! <ReservedWords> ! <ReservedWord>UNLISTEN</ReservedWord> ! </ReservedWords> ! <ReservedWords> ! <ReservedWord>UNTIL</ReservedWord> ! </ReservedWords> ! <ReservedWords> ! <ReservedWord>VACUUM</ReservedWord> ! </ReservedWords> ! <ReservedWords> ! <ReservedWord>VERBOSE</ReservedWord> ! </ReservedWords> </NewDataSet> |
From: Carlos G. Á. <car...@us...> - 2005-09-13 21:07:08
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4085 Modified Files: MetaData.xml Log Message: Continue the rework of the Schema support Index: MetaData.xml =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/MetaData.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MetaData.xml 13 Sep 2005 18:21:51 -0000 1.3 --- MetaData.xml 13 Sep 2005 21:07:01 -0000 1.4 *************** *** 200,203 **** --- 200,210 ---- <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> + <MetaDataCollections> + <CollectionName>ProviderTypes</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + <PopulationMechanism>SQLCommand</PopulationMechanism> + <PopulationString>SELECT pg_namespace.nspname AS TYPE_SCHEMA, pg_type.typname AS TYPE_NAME, pg_type.oid AS DATA_TYPE, pg_type.typlen AS COLUMN_SIZE, pg_type.typnotnull AS IS_NOT_NULL, pg_type.typndims AS ARRAY_DIMENSIONS, pg_type.typelem AS ELEMENT_TYPE, pg_type.typbasetype AS BASE_TYPE, pg_type.typtypmod AS BASE_TYPE_MODIFIER, pg_description.description AS DESCRIPTION FROM pg_type left join pg_namespace ON pg_type.typnamespace = pg_namespace.oid left join pg_description ON pg_type.oid = pg_description.objoid ORDER BY pg_type.typname</PopulationString> + </MetaDataCollections> <MetaDataCollections> <CollectionName>ReservedWords</CollectionName> *************** *** 218,222 **** <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> --- 225,230 ---- <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>SQLCommand</PopulationMechanism> ! <PopulationString>SELECT pg_namespace.nspname AS SCHEMA_NAME, pg_shadow.usename AS SCHEMA_OWNER, pg_description.description AS DESCRIPTION FROM pg_namespace left join pg_shadow ON pg_namespace.nspowner = pg_shadow.usesysid left join pg_description ON pg_namespace.oid = pg_description.objoid ORDER BY pg_namespace.nspname, pg_shadow.usename</PopulationString> </MetaDataCollections> <MetaDataCollections> *************** *** 224,228 **** <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> --- 232,237 ---- <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>SQLCommand</PopulationMechanism> ! <PopulationString>SELECT pg_language.lanname AS LANGUAGE_NAME, pg_language.lanispl AS IS_USER_DEFINED, pg_proc.proname AS CALL_FUNCTION, pg_procv.proname AS VALIDATOR, pg_description.description AS DESCRIPTION FROM pg_language left join pg_proc ON pg_language.lanplcallfoid = pg_proc.oid left join pg_proc as pg_procv ON pg_language.lanvalidator = pg_procv.oid left join pg_description ON pg_language.oid = pg_description.objoid ORDER BY pg_language.lanname</PopulationString> </MetaDataCollections> <MetaDataCollections> |
From: Carlos G. Á. <car...@us...> - 2005-09-13 18:30:46
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31653 Added Files: PgIndexColumns.cs PgIndexes.cs PgPrimaryKeys.cs Log Message: Continue the rework of the Schema support --- NEW FILE: PgPrimaryKeys.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.Schema { internal sealed class PgPrimaryKeys : PgSchema { #region · Protected Methods · protected override string BuildSql(string[] restrictions) { string sql = "SELECT " + "null AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "pg_constraint.conname AS PK_NAME, " + "pg_constraint.conkey AS PK_COLUMNS, " + "pg_description.description AS DESCRIPTION " + "FROM pg_constraint " + "left join pg_class ON pg_constraint.conrelid = pg_class.oid " + "left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid " + "left join pg_description ON pg_constraint.oid = pg_description.objoid " + "WHERE " + "pg_constraint.contype = 'p' "; if (restrictions != null && restrictions.Length > 0) { // TABLE_CATALOG if (restrictions.Length > 0) { } // TABLE_SCHEMA if (restrictions.Length > 1 && restrictions[1] != null) { sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); } // TABLE_NAME if (restrictions.Length > 2 && restrictions[2] != null) { sql += String.Format(" and pg_class.relname = '{0}'", restrictions[1]); } } sql += " ORDER BY pg_namespace.nspname, pg_class.relname, pg_constraint.conname"; return sql; } #endregion } } --- NEW FILE: PgIndexes.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.Schema { internal sealed class PgIndexes : PgSchema { #region · Protected Methods · protected override string BuildSql(string[] restrictions) { string sql = "SELECT " + "null AS TABLE_CATALOG " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "null AS INDEX_CATALOG, " + "pg_classidx.relname AS INDEX_NAME, " + "pg_namespidx.nspname AS INDEX_SCHEMA, " + "pg_am.amname AS TYPE, " + "pg_index.indkey AS INDEX_KEY, " + "pg_index.indisclustered AS CLUSTERED, " + "pg_index.indisunique AS UNIQUE, " + "pg_index.indisprimary AS PRIMARY, " + "pg_am.amindexnulls AS ALLOW_NULLS, " + "pg_am.amcanmulticol AS MULTICOLUMN, " + "pg_am.amconcurrent AS CONCURRENT, " + "pg_description.description AS DESCRIPTION " + "FROM pg_index " + "left join pg_class ON pg_index.indrelid = pg_class.oid " + "left join pg_class as pg_classidx ON pg_index.indexrelid = pg_classidx.oid " + "left join pg_namespace ON pg_classidx.relnamespace = pg_namespace.oid " + "left join pg_namespace as pg_namespidx ON pg_classidx.relnamespace = pg_namespidx.oid " + "left join pg_am ON pg_classidx.relam = pg_am.oid left join pg_description ON pg_index.indexrelid = pg_description.objoid "; if (restrictions != null && restrictions.Length > 0) { throw new NotImplementedException(); } sql += "ORDER BY pg_namespace.nspname, pg_class.relname, pg_classidx.relname"; return sql; } #endregion } } --- NEW FILE: PgIndexColumns.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.Schema { internal sealed class PgIndexColumns : PgSchema { #region · Protected Methods · protected override string BuildSql(string[] restrictions) { throw new Exception("The method or operation is not implemented."); } #endregion } } |
From: Carlos G. Á. <car...@us...> - 2005-09-13 18:22:01
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29583/PostgreSql/Data/Schema Modified Files: MetaData.xml PgColumns.cs PgSchemaFactory.cs PgTables.cs Log Message: Started the rework of the Schema support Index: PgColumns.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/PgColumns.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PgColumns.cs 12 Sep 2005 18:27:45 -0000 1.1 --- PgColumns.cs 13 Sep 2005 18:21:51 -0000 1.2 *************** *** 58,63 **** if (restrictions != null && restrictions.Length > 0) { - sql += " WHERE "; - // TABLE_CATALOG if (restrictions.Length > 0) --- 58,61 ---- *************** *** 68,72 **** if (restrictions.Length > 1 && restrictions[1] != null) { ! sql += String.Format("pg_namespace.nspname = '{0}'", restrictions[1]); } --- 66,70 ---- if (restrictions.Length > 1 && restrictions[1] != null) { ! sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); } *************** *** 74,78 **** if (restrictions.Length > 2 && restrictions[2] != null) { ! sql += String.Format("pg_class.relname = '{0}'", restrictions[1]); } --- 72,76 ---- if (restrictions.Length > 2 && restrictions[2] != null) { ! sql += String.Format(" and pg_class.relname = '{0}'", restrictions[1]); } *************** *** 80,84 **** if (restrictions.Length > 3 && restrictions[3] != null) { ! sql += String.Format("pg_attribute.attname = '{0}'", restrictions[2]); } } --- 78,82 ---- if (restrictions.Length > 3 && restrictions[3] != null) { ! sql += String.Format(" and pg_attribute.attname = '{0}'", restrictions[2]); } } Index: PgSchemaFactory.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/PgSchemaFactory.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgSchemaFactory.cs 12 Sep 2005 18:27:45 -0000 1.2 --- PgSchemaFactory.cs 13 Sep 2005 18:21:51 -0000 1.3 *************** *** 99,102 **** --- 99,106 ---- break; + case "primarykeys": + schema = new PgPrimaryKeys(); + break; + case "tables": schema = new PgTables(); Index: MetaData.xml =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/MetaData.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MetaData.xml 12 Sep 2005 18:27:45 -0000 1.2 --- MetaData.xml 13 Sep 2005 18:21:51 -0000 1.3 *************** *** 108,114 **** <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> ! <MetaDataCollections> <CollectionName>CheckConstraints</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> --- 108,115 ---- <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>SQLCommand</PopulationMechanism> ! <PopulationString>SELECT pg_typesrc.typname AS SOURCE_TYPE, pg_typetgt.typname AS TARGET_TYPE, pg_namespace.nspname AS FUNCTION_SCHEMA, pg_proc.proname AS FUNCTION_NAME, case pg_cast.castcontext when 'e' THEN 'EXPLICIT' when 'a' THEN 'ASSIGNMENT' when 'i' THEN 'EXPRESSIONS' END AS CAST_CONTEXT FROM pg_cast left join pg_type as pg_typesrc ON pg_cast.castsource = pg_typesrc.oid left join pg_type as pg_typetgt ON pg_cast.casttarget = pg_typetgt.oid left join pg_proc ON pg_cast.castfunc = pg_proc.oid left join pg_namespace ON pg_proc.pronamespace = pg_namespace.oid ORDER BY pg_proc.proname</PopulationString> </MetaDataCollections> ! <MetaDataCollections> <CollectionName>CheckConstraints</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> *************** *** 132,137 **** <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>DataTable</PopulationMechanism> ! <PopulationString>DataSourceInformation</PopulationString> </MetaDataCollections> <MetaDataCollections> --- 133,138 ---- <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>SQLCommand</PopulationMechanism> ! <PopulationString>SELECT pg_database.datname AS DATABASE_NAME, pg_database.datistemplate AS IS_TEMPLATE, pg_database.datallowconn AS ALLOW_CONNECTION, pg_database.datconfig AS DATABASE_CONFIG FROM pg_database</PopulationString> </MetaDataCollections> <MetaDataCollections> *************** *** 171,175 **** <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> --- 172,177 ---- <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>SQLCommand</PopulationMechanism> ! <PopulationString>SELECT pg_group.groname AS GROUP_NAME, pg_group.grolist AS GROUP_USERS FROM pg_group ORDER BY pg_group.groname</PopulationString> </MetaDataCollections> <MetaDataCollections> *************** *** 247,252 **** <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> ! </MetaDataCollections> ! <MetaDataCollections> <CollectionName>ViewColumns</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> --- 249,261 ---- <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> ! </MetaDataCollections> ! <MetaDataCollections> ! <CollectionName>Users</CollectionName> ! <NumberOfRestrictions>0</NumberOfRestrictions> ! <NumberOfIdentifierParts>0</NumberOfIdentifierParts> ! <PopulationMechanism>SQLCommand</PopulationMechanism> ! <PopulationString>SELECT pg_shadow.usename AS USER_NAME, pg_shadow.usecreatedb AS CREATE_DATABASE, pg_shadow.usesuper AS IS_SUPERUSER, pg_shadow.usecatupd AS UPDATE_SYSCATALOGS, pg_shadow.passwd AS PASSWORD, pg_shadow.useconfig AS CONFIGURATION FROM pg_shadow ORDER BY pg_shadow.usename</PopulationString> ! </MetaDataCollections> ! <MetaDataCollections> <CollectionName>ViewColumns</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> *************** *** 291,294 **** --- 300,321 ---- </Restrictions> <Restrictions> + <CollectionName>PrimaryKeys</CollectionName> + <RestrictionName>Catalog</RestrictionName> + <RestrictionDefault>table_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>PrimaryKeys</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>table_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>PrimaryKeys</CollectionName> + <RestrictionName>Table</RestrictionName> + <RestrictionDefault>table_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Catalog</RestrictionName> Index: PgTables.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/PgTables.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgTables.cs 12 Sep 2005 18:27:45 -0000 1.2 --- PgTables.cs 13 Sep 2005 18:21:51 -0000 1.3 *************** *** 50,55 **** if (restrictions != null && restrictions.Length > 0) { - sql += " WHERE "; - // TABLE_CATALOG if (restrictions.Length > 0) --- 50,53 ---- *************** *** 60,64 **** if (restrictions.Length > 1 && restrictions[1] != null) { ! sql += String.Format("pg_namespace.nspname = '{0}'", restrictions[1]); } --- 58,62 ---- if (restrictions.Length > 1 && restrictions[1] != null) { ! sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); } *************** *** 66,70 **** if (restrictions.Length > 2 && restrictions[2] != null) { ! sql += String.Format("pg_class.relname = '{0}'", restrictions[1]); } --- 64,68 ---- if (restrictions.Length > 2 && restrictions[2] != null) { ! sql += String.Format(" and pg_class.relname = '{0}'", restrictions[1]); } *************** *** 72,76 **** if (restrictions.Length > 3 && restrictions[3] != null) { ! sql += String.Format("pg_class.relkind = '{0}'", restrictions[2]); } } --- 70,74 ---- if (restrictions.Length > 3 && restrictions[3] != null) { ! sql += String.Format(" and pg_class.relkind = '{0}'", restrictions[2]); } } |
From: Carlos G. Á. <car...@us...> - 2005-09-13 18:21:59
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29583/PostgreSql/Data/PostgreSqlClient Modified Files: PgDataReader.cs Log Message: Started the rework of the Schema support Index: PgDataReader.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgDataReader.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PgDataReader.cs 12 Sep 2005 18:27:45 -0000 1.5 --- PgDataReader.cs 13 Sep 2005 18:21:51 -0000 1.6 *************** *** 232,235 **** --- 232,236 ---- PgCommand primaryKeyCmd = new PgCommand(this.GetPrimaryKeysSql(), this.connection); primaryKeyCmd.Parameters.Add("@OidTable", PgDbType.Int4); + primaryKeyCmd.InternalPrepare(); for (int i = 0; i < command.Statement.RowDescriptor.Fields.Length; i++) *************** *** 288,292 **** schemaRow["IsReadOnly"] = (bool)columnInfo[10]; schemaRow["IsAutoIncrement"] = (bool)columnInfo[10]; ! schemaRow["IsKey"] = this.IsPrimaryKey(pKeyInfo, (short)columnInfo[6]); schemaRow["AllowDBNull"] = ((bool)columnInfo[9]) ? false : true; schemaRow["BaseSchemaName"] = columnInfo[0].ToString(); --- 289,293 ---- schemaRow["IsReadOnly"] = (bool)columnInfo[10]; schemaRow["IsAutoIncrement"] = (bool)columnInfo[10]; ! schemaRow["IsKey"] = this.IsPrimaryKey(pKeyInfo, (int)columnInfo[6]); schemaRow["AllowDBNull"] = ((bool)columnInfo[9]) ? false : true; schemaRow["BaseSchemaName"] = columnInfo[0].ToString(); *************** *** 325,330 **** "pg_attribute.attname AS COLUMN_NAME, " + "pg_attribute.atttypid AS DATA_TYPE, " + - "0 AS NUMERIC_PRECISION, " + - "0 AS NUMERIC_SCALE, " + "pg_attribute.attlen AS COLUMN_SIZE, " + "pg_attribute.attndims AS COLUMN_DIMENSIONS, " + --- 326,329 ---- *************** *** 353,360 **** private string GetPrimaryKeysSql() { ! throw new NotImplementedException(); } ! private bool IsPrimaryKey(System.Array pKeyInfo, short ordinal) { if (pKeyInfo != null) --- 352,372 ---- private string GetPrimaryKeysSql() { ! return "SELECT " + ! "null AS TABLE_CATALOG, " + ! "pg_namespace.nspname AS TABLE_SCHEMA, " + ! "pg_class.relname AS TABLE_NAME, " + ! "pg_constraint.conname AS PK_NAME, " + ! "pg_constraint.conkey AS PK_COLUMNS, " + ! "pg_description.description AS DESCRIPTION " + ! "FROM pg_constraint " + ! "left join pg_class ON pg_constraint.conrelid = pg_class.oid " + ! "left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid " + ! "left join pg_description ON pg_constraint.oid = pg_description.objoid " + ! "WHERE " + ! "pg_constraint.contype = 'p' and " + ! "pg_class.oid = @OidTable"; } ! private bool IsPrimaryKey(System.Array pKeyInfo, int ordinal) { if (pKeyInfo != null) |
From: Carlos G. Á. <car...@us...> - 2005-09-12 20:26:51
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4011 Added Files: PgRowUpdatedEventHandler.cs PgRowUpdatingEventHandler.cs Log Message: Started the rework of the Schema support --- NEW FILE: PgRowUpdatedEventHandler.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.PostgreSqlClient { public delegate void PgRowUpdatedEventHandler(object sender, PgRowUpdatedEventArgs e); } --- NEW FILE: PgRowUpdatingEventHandler.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.PostgreSqlClient { public delegate void PgRowUpdatingEventHandler(object sender, PgRowUpdatingEventArgs e); } |
From: Carlos G. Á. <car...@us...> - 2005-09-12 20:24:59
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3773/PostgreSql/Data/Protocol Modified Files: PgStatement.cs Log Message: Started the rework of the Schema support Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgStatement.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PgStatement.cs 12 Sep 2005 18:27:45 -0000 1.7 --- PgStatement.cs 12 Sep 2005 20:24:48 -0000 1.8 *************** *** 236,245 **** this.ProcessSqlPacket(response); } ! while (response.IsRowDescription || response.IsNoData); // Update status this.status = PgStatementStatus.Described; } ! catch (Exception) { // Update status --- 236,245 ---- this.ProcessSqlPacket(response); } ! while (!response.IsRowDescription && !response.IsNoData); // Update status this.status = PgStatementStatus.Described; } ! catch { // Update status *************** *** 292,296 **** this.status = PgStatementStatus.Parsed; } ! catch (Exception) { // Update status --- 292,296 ---- this.status = PgStatementStatus.Parsed; } ! catch { // Update status *************** *** 400,404 **** this.status = PgStatementStatus.Executed; } ! catch (Exception) { // Update status --- 400,404 ---- this.status = PgStatementStatus.Executed; } ! catch { // Update status *************** *** 466,470 **** this.status = PgStatementStatus.Executed; } ! catch (Exception) { // Update status --- 466,470 ---- this.status = PgStatementStatus.Executed; } ! catch { // Update status *************** *** 556,560 **** this.status = PgStatementStatus.Initial; } ! catch (Exception) { // Update Status --- 556,560 ---- this.status = PgStatementStatus.Initial; } ! catch { // Update Status *************** *** 738,742 **** default: ! if (this.status == PgStatementStatus.OnQuery) { values[i] = packet.ReadValueFromString(this.rowDescriptor.Fields[i].DataType, length); --- 738,742 ---- default: ! if (this.rowDescriptor.Fields[i].DataType.FormatCode == PgTypeFormat.Text) { values[i] = packet.ReadValueFromString(this.rowDescriptor.Fields[i].DataType, length); |
From: Carlos G. Á. <car...@us...> - 2005-09-12 18:27:54
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1495/Data/Schema Modified Files: MetaData.xml PgSchemaFactory.cs PgTables.cs Added Files: PgColumns.cs Log Message: Started the rework of the Schema support --- NEW FILE: PgColumns.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.Schema { internal class PgColumns : PgSchema { #region · Methods · protected override string BuildSql(string[] restrictions) { string sql = "SELECT " + "null AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "pg_attribute.attname AS COLUMN_NAME, " + "pg_attribute.atttypid AS DATA_TYPE, " + "cast(0 as int4) AS NUMERIC_PRECISION, " + "cast(0 as int4) AS NUMERIC_SCALE, " + "pg_attribute.attlen AS COLUMN_SIZE, " + "pg_attribute.attndims AS COLUMN_DIMENSIONS, " + "pg_attribute.attnum AS ORDINAL_POSITION, " + "pg_attrdef.adsrc AS COLUMN_DEFAULT, " + "pg_attribute.attnotnull AS IS_NOT_NULL, " + "(pg_depend.objid is not null) AS IS_AUTOINCREMENT, " + "case pg_attribute.attstorage " + "when 'p' THEN 'PLAIN' " + "when 'e' THEN 'EXTERNAL' "+ "when 'm' THEN 'MAIN' " + "when 'x' THEN 'EXTENDED' " + "END AS STORAGE, " + "pg_description.description AS DESCRIPTION " + "FROM pg_attribute " + "left join pg_class ON pg_attribute.attrelid = pg_class.oid " + "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + "left join pg_attrdef ON (pg_class.oid = pg_attrdef.adrelid AND pg_attribute.attnum = pg_attrdef.adnum) " + "left join pg_description ON (pg_attribute.attrelid = pg_description.objoid AND pg_attribute.attnum = pg_description.objsubid) " + "left join pg_depend ON (pg_attribute.attrelid = pg_depend.refobjid AND pg_attribute.attnum = pg_depend.refobjsubid AND pg_depend.deptype = 'i') " + "WHERE pg_attribute.attisdropped = false AND pg_attribute.attnum > 0 "; if (restrictions != null && restrictions.Length > 0) { sql += " WHERE "; // TABLE_CATALOG if (restrictions.Length > 0) { } // TABLE_SCHEMA if (restrictions.Length > 1 && restrictions[1] != null) { sql += String.Format("pg_namespace.nspname = '{0}'", restrictions[1]); } // TABLE_NAME if (restrictions.Length > 2 && restrictions[2] != null) { sql += String.Format("pg_class.relname = '{0}'", restrictions[1]); } // COLUMN_NAME if (restrictions.Length > 3 && restrictions[3] != null) { sql += String.Format("pg_attribute.attname = '{0}'", restrictions[2]); } } sql += " ORDER BY pg_namespace.nspname, pg_class.relname, pg_attribute.attnum"; return sql; } #endregion } } Index: PgSchemaFactory.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/PgSchemaFactory.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PgSchemaFactory.cs 12 Sep 2005 17:11:30 -0000 1.1 --- PgSchemaFactory.cs 12 Sep 2005 18:27:45 -0000 1.2 *************** *** 95,98 **** --- 95,102 ---- switch (collectionName.Trim().ToLower()) { + case "columns": + schema = new PgColumns(); + break; + case "tables": schema = new PgTables(); Index: MetaData.xml =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/MetaData.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MetaData.xml 12 Sep 2005 17:11:30 -0000 1.1 --- MetaData.xml 12 Sep 2005 18:27:45 -0000 1.2 *************** *** 267,270 **** --- 267,294 ---- </MetaDataCollections> <Restrictions> + <CollectionName>Columns</CollectionName> + <RestrictionName>Catalog</RestrictionName> + <RestrictionDefault>table_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>Columns</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>table_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>Columns</CollectionName> + <RestrictionName>Table</RestrictionName> + <RestrictionDefault>table_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>Columns</CollectionName> + <RestrictionName>Name</RestrictionName> + <RestrictionDefault>column_name</RestrictionDefault> + <RestrictionNumber>4</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Catalog</RestrictionName> Index: PgTables.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema/PgTables.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PgTables.cs 12 Sep 2005 17:11:30 -0000 1.1 --- PgTables.cs 12 Sep 2005 18:27:45 -0000 1.2 *************** *** 46,51 **** "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + "left join pg_description ON pg_class.oid = pg_description.objoid " + ! "WHERE pg_class.relkind = 'r' " + ! "ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; if (restrictions != null && restrictions.Length > 0) --- 46,50 ---- "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + "left join pg_description ON pg_class.oid = pg_description.objoid " + ! "WHERE pg_class.relkind = 'r' "; if (restrictions != null && restrictions.Length > 0) *************** *** 71,75 **** // TABLE_TYPE ! if (restrictions.Length > 2 && restrictions[2] != null) { sql += String.Format("pg_class.relkind = '{0}'", restrictions[2]); --- 70,74 ---- // TABLE_TYPE ! if (restrictions.Length > 3 && restrictions[3] != null) { sql += String.Format("pg_class.relkind = '{0}'", restrictions[2]); *************** *** 77,80 **** --- 76,81 ---- } + sql += " ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; + return sql; } |
From: Carlos G. Á. <car...@us...> - 2005-09-12 18:27:53
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1495/Data/PostgreSqlClient Modified Files: PgDataAdapter.cs PgDataReader.cs Log Message: Started the rework of the Schema support Index: PgDataAdapter.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgDataAdapter.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgDataAdapter.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgDataAdapter.cs 12 Sep 2005 18:27:45 -0000 1.4 *************** *** 25,40 **** namespace PostgreSql.Data.PostgreSqlClient { ! #region Delegates ! ! public delegate void PgRowUpdatedEventHandler(object sender, PgRowUpdatedEventArgs e); ! public delegate void PgRowUpdatingEventHandler(object sender, PgRowUpdatingEventArgs e); ! ! #endregion ! ! [ToolboxItem(true), ToolboxBitmap(typeof(PgDataAdapter), "Resources.ToolBox.PgDataAdapter.bmp"), ! DefaultEvent("RowUpdated")] public sealed class PgDataAdapter : DbDataAdapter, ICloneable { ! #region Events private static readonly object EventRowUpdated = new object(); --- 25,34 ---- namespace PostgreSql.Data.PostgreSqlClient { ! [ToolboxItem(true)] ! [ToolboxBitmap(typeof(PgDataAdapter), "Resources.ToolBox.PgDataAdapter.bmp")] ! [DefaultEvent("RowUpdated")] public sealed class PgDataAdapter : DbDataAdapter, ICloneable { ! #region · Events · private static readonly object EventRowUpdated = new object(); *************** *** 45,53 **** #region · Fields · ! private PgCommand selectCommand; ! private PgCommand insertCommand; ! private PgCommand updateCommand; ! private PgCommand deleteCommand; ! private bool disposed; #endregion --- 39,43 ---- #region · Fields · ! private bool disposed; #endregion *************** *** 59,64 **** public new PgCommand SelectCommand { ! get { return this.selectCommand; } ! set { this.selectCommand = value; } } --- 49,54 ---- public new PgCommand SelectCommand { ! get { return (PgCommand)base.SelectCommand; } ! set { base.SelectCommand = value; } } *************** *** 67,72 **** public new PgCommand InsertCommand { ! get { return this.insertCommand; } ! set { this.insertCommand = value; } } --- 57,62 ---- public new PgCommand InsertCommand { ! get { return (PgCommand)base.InsertCommand; } ! set { base.InsertCommand = value; } } *************** *** 75,80 **** public new PgCommand UpdateCommand { ! get { return this.updateCommand; } ! set { this.updateCommand = value; } } --- 65,70 ---- public new PgCommand UpdateCommand { ! get { return (PgCommand)base.UpdateCommand; } ! set { base.UpdateCommand = value; } } *************** *** 83,88 **** public new PgCommand DeleteCommand { ! get { return this.deleteCommand; } ! set { this.deleteCommand = value; } } --- 73,78 ---- public new PgCommand DeleteCommand { ! get { return (PgCommand)base.DeleteCommand; } ! set { base.DeleteCommand = value; } } Index: PgDataReader.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgDataReader.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgDataReader.cs 11 Sep 2005 13:29:16 -0000 1.4 --- PgDataReader.cs 12 Sep 2005 18:27:45 -0000 1.5 *************** *** 225,261 **** schemaTable.BeginLoadData(); ! PgCommand cInfoCmd = this.GetColumnInfoCmd(); ! PgCommand pKeyCmd = this.GetPrimaryKeyInfoCmd(); for (int i = 0; i < command.Statement.RowDescriptor.Fields.Length; i++) { ! object[] columnInfo = null; ! System.Array pKeyInfo = null; // Execute commands ! cInfoCmd.Parameters[0].Value = command.Statement.RowDescriptor.Fields[i].OidNumber; ! cInfoCmd.Parameters[1].Value = command.Statement.RowDescriptor.Fields[i].OidTable; ! ! pKeyCmd.Parameters[0].Value = command.Statement.RowDescriptor.Fields[i].OidTable; ! cInfoCmd.InternalPrepare(); ! pKeyCmd.InternalPrepare(); ! cInfoCmd.InternalExecute(); ! pKeyCmd.InternalExecute(); // Get Column Information ! if (cInfoCmd.Statement.Rows != null && ! cInfoCmd.Statement.Rows.Length > 0) { ! columnInfo = (object[])cInfoCmd.Statement.Rows[0]; } // Get Primary Key Info ! if (pKeyCmd.Statement.Rows != null && ! pKeyCmd.Statement.Rows.Length > 0) { ! object[] temp = (object[])pKeyCmd.Statement.Rows[0]; ! pKeyInfo = (System.Array)temp[3]; } --- 225,261 ---- schemaTable.BeginLoadData(); ! PgCommand columnsCmd = new PgCommand(this.GetColumnsSql(), this.connection); ! columnsCmd.Parameters.Add("@OidNumber", PgDbType.Int4); ! columnsCmd.Parameters.Add("@OidTable", PgDbType.Int4); ! columnsCmd.InternalPrepare(); ! ! PgCommand primaryKeyCmd = new PgCommand(this.GetPrimaryKeysSql(), this.connection); ! primaryKeyCmd.Parameters.Add("@OidTable", PgDbType.Int4); for (int i = 0; i < command.Statement.RowDescriptor.Fields.Length; i++) { ! object[] columnInfo = null; ! Array pKeyInfo = null; // Execute commands ! columnsCmd.Parameters[0].Value = command.Statement.RowDescriptor.Fields[i].OidNumber; ! columnsCmd.Parameters[1].Value = command.Statement.RowDescriptor.Fields[i].OidTable; ! primaryKeyCmd.Parameters[0].Value = command.Statement.RowDescriptor.Fields[i].OidTable; ! columnsCmd.InternalExecute(); ! primaryKeyCmd.InternalExecute(); // Get Column Information ! if (columnsCmd.Statement.Rows != null && columnsCmd.Statement.Rows.Length > 0) { ! columnInfo = (object[])columnsCmd.Statement.Rows[0]; } // Get Primary Key Info ! if (primaryKeyCmd.Statement.Rows != null && primaryKeyCmd.Statement.Rows.Length > 0) { ! object[] temp = (object[])primaryKeyCmd.Statement.Rows[0]; ! pKeyInfo = (Array)temp[3]; } *************** *** 310,315 **** schemaTable.EndLoadData(); ! cInfoCmd.Dispose(); ! pKeyCmd.Dispose(); } --- 310,315 ---- schemaTable.EndLoadData(); ! columnsCmd.Dispose(); ! primaryKeyCmd.Dispose(); } *************** *** 317,326 **** } ! private PgCommand GetColumnInfoCmd() { ! throw new NotImplementedException(); } ! private PgCommand GetPrimaryKeyInfoCmd() { throw new NotImplementedException(); --- 317,355 ---- } ! private string GetColumnsSql() { ! return "SELECT " + ! "null AS TABLE_CATALOG, " + ! "pg_namespace.nspname AS TABLE_SCHEMA, " + ! "pg_class.relname AS TABLE_NAME, " + ! "pg_attribute.attname AS COLUMN_NAME, " + ! "pg_attribute.atttypid AS DATA_TYPE, " + ! "0 AS NUMERIC_PRECISION, " + ! "0 AS NUMERIC_SCALE, " + ! "pg_attribute.attlen AS COLUMN_SIZE, " + ! "pg_attribute.attndims AS COLUMN_DIMENSIONS, " + ! "pg_attribute.attnum AS ORDINAL_POSITION, " + ! "pg_attrdef.adsrc AS COLUMN_DEFAULT, " + ! "pg_attribute.attnotnull AS IS_NOT_NULL, " + ! "(pg_depend.objid is not null) AS IS_AUTOINCREMENT, " + ! "case pg_attribute.attstorage " + ! "when 'p' THEN 'PLAIN' " + ! "when 'e' THEN 'EXTERNAL' "+ ! "when 'm' THEN 'MAIN' " + ! "when 'x' THEN 'EXTENDED' " + ! "END AS STORAGE, " + ! "pg_description.description AS DESCRIPTION " + ! "FROM pg_attribute " + ! "left join pg_class ON pg_attribute.attrelid = pg_class.oid " + ! "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + ! "left join pg_attrdef ON (pg_class.oid = pg_attrdef.adrelid AND pg_attribute.attnum = pg_attrdef.adnum) " + ! "left join pg_description ON (pg_attribute.attrelid = pg_description.objoid AND pg_attribute.attnum = pg_description.objsubid) " + ! "left join pg_depend ON (pg_attribute.attrelid = pg_depend.refobjid AND pg_attribute.attnum = pg_depend.refobjsubid AND pg_depend.deptype = 'i') " + ! "WHERE pg_attribute.attisdropped = false AND pg_attribute.attnum > 0 AND " + ! "pg_attribute.attnum = @OidNumber AND " + ! "pg_attribute.attrelid = @OidTable"; } ! private string GetPrimaryKeysSql() { throw new NotImplementedException(); |
From: Carlos G. Á. <car...@us...> - 2005-09-12 18:27:53
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1495/Data/Protocol Modified Files: PgResponsePacket.cs PgStatement.cs Log Message: Started the rework of the Schema support Index: PgResponsePacket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgResponsePacket.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgResponsePacket.cs 11 Sep 2005 13:29:16 -0000 1.4 --- PgResponsePacket.cs 12 Sep 2005 18:27:45 -0000 1.5 *************** *** 107,111 **** public PgResponsePacket(char message, Encoding encoding, byte[] contents) { ! this.packet = new BinaryReader(new MemoryStream(contents)); this.encoding = encoding; this.message = message; --- 107,112 ---- public PgResponsePacket(char message, Encoding encoding, byte[] contents) { ! this.stream = new MemoryStream(contents); ! this.packet = new BinaryReader(this.stream); this.encoding = encoding; this.message = message; *************** *** 664,667 **** --- 665,673 ---- #endregion + + internal byte[] ToArray() + { + return ((MemoryStream)this.stream).ToArray(); + } } } Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgStatement.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PgStatement.cs 12 Sep 2005 16:18:58 -0000 1.6 --- PgStatement.cs 12 Sep 2005 18:27:45 -0000 1.7 *************** *** 740,752 **** if (this.status == PgStatementStatus.OnQuery) { ! values[i] = packet.ReadValueFromString( ! this.rowDescriptor.Fields[i].DataType, ! length); } else { ! values[i] = packet.ReadValue( ! this.rowDescriptor.Fields[i].DataType, ! length); } break; --- 740,748 ---- if (this.status == PgStatementStatus.OnQuery) { ! values[i] = packet.ReadValueFromString(this.rowDescriptor.Fields[i].DataType, length); } else { ! values[i] = packet.ReadValue(this.rowDescriptor.Fields[i].DataType, length); } break; |
From: Carlos G. Á. <car...@us...> - 2005-09-12 17:11:39
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17916 Added Files: MetaData.xml PgSchema.cs PgSchemaFactory.cs PgTables.cs Log Message: Started the rework of the Schema support --- NEW FILE: PgSchema.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; using System.Data; using System.Text; using System.Text.RegularExpressions; using System.Collections; using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal abstract class PgSchema { #region · Constructors · public PgSchema() { } #endregion #region · Abstract Methods · protected abstract string BuildSql(string[] restrictions); #endregion #region · Methods · public DataTable GetSchema(PgConnection connection, string collectionName, string[] restrictions) { DataTable dataTable = null; PgDataAdapter adapter = null; PgCommand command = new PgCommand(); try { command.Connection = connection; command.CommandText = this.BuildSql(this.ParseRestrictions(restrictions)); adapter = new PgDataAdapter(command); dataTable = new DataTable(collectionName); adapter.Fill(dataTable); } catch (PgException) { throw; } catch (Exception ex) { throw new PgException(ex.Message); } finally { command.Dispose(); adapter.Dispose(); } return dataTable; } #endregion #region · Protected Methods · protected virtual string[] ParseRestrictions(string[] restrictions) { return restrictions; } #endregion } } --- NEW FILE: PgSchemaFactory.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; using System.Data; using System.Data.Common; using System.IO; using System.Reflection; using System.Xml; using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal sealed class PgSchemaFactory { #region · Static Members · private static readonly string ResName = "PostgreSql.Data.Schema.MetaData.xml"; #endregion #region · Constructors · private PgSchemaFactory() { } #endregion #region · Static Methods · public static DataTable GetSchema(PgConnection connection, string collectionName, string[] restrictions) { string filter = String.Format("CollectionName = '{0}'", collectionName); Stream xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ResName); DataSet ds = new DataSet(); ds.ReadXml(xmlStream); DataRow[] collection = ds.Tables[DbMetaDataCollectionNames.MetaDataCollections].Select(filter); if (collection.Length != 1) { throw new NotSupportedException("Unsupported collection name."); } if (restrictions != null && restrictions.Length > (int)collection[0]["NumberOfRestrictions"]) { throw new InvalidOperationException("The number of specified restrictions is not valid."); } if (ds.Tables[DbMetaDataCollectionNames.Restrictions].Select(filter).Length != (int)collection[0]["NumberOfRestrictions"]) { throw new InvalidOperationException("Incorrect restriction definition."); } switch (collection[0]["PopulationMechanism"].ToString()) { case "PrepareCollection": return PrepareCollection(connection, collectionName, restrictions); case "DataTable": return ds.Tables[collection[0]["PopulationString"].ToString()].Copy(); case "SQLCommand": return SqlCommandCollection(connection, collectionName, (string)collection[0]["PopulationString"], restrictions); default: throw new NotSupportedException("Unsupported population mechanism"); } } #endregion #region · Schema Population Methods · private static DataTable PrepareCollection(PgConnection connection, string collectionName, string[] restrictions) { PgSchema schema = null; switch (collectionName.Trim().ToLower()) { case "tables": schema = new PgTables(); break; } return schema.GetSchema(connection, collectionName, restrictions); } private static DataTable SqlCommandCollection(PgConnection connection, string collectionName, string sql, string[] restrictions) { if (restrictions == null) { restrictions = new string[0]; } DataTable dataTable = null; PgDataAdapter adapter = null; PgCommand command = new PgCommand(String.Format(sql, restrictions), connection); try { adapter = new PgDataAdapter(command); dataTable = new DataTable(collectionName); adapter.Fill(dataTable); } catch (PgException) { throw; } catch (Exception ex) { throw new PgException(ex.Message); } finally { command.Dispose(); adapter.Dispose(); } return dataTable; } #endregion } } --- NEW FILE: MetaData.xml --- <?xml version="1.0" standalone="yes"?> <NewDataSet> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="MetaDataCollections" msdata:MinimumCapacity="9"> <xs:complexType> <xs:sequence> <xs:element name="CollectionName" type="xs:string" minOccurs="0" /> <xs:element name="NumberOfRestrictions" type="xs:int" minOccurs="0" /> <xs:element name="NumberOfIdentifierParts" type="xs:int" minOccurs="0" /> <xs:element name="PopulationMechanism" type="xs:string" minOccurs="0" /> <xs:element name="PopulationString" type="xs:string" minOccurs="0" /> <xs:element name="MinimumVersion" type="xs:string" minOccurs="0" /> <xs:element name="MaximumVersion" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Restrictions" msdata:MinimumCapacity="3"> <xs:complexType> <xs:sequence> <xs:element name="CollectionName" type="xs:string" minOccurs="0" /> <xs:element name="RestrictionName" type="xs:string" minOccurs="0" /> <xs:element name="RestrictionDefault" type="xs:string" minOccurs="0" /> <xs:element name="RestrictionNumber" type="xs:int" minOccurs="0" /> <xs:element name="MinimumVersion" type="xs:string" minOccurs="0" /> <xs:element name="MaximumVersion" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DataSourceInformation" msdata:MinimumCapacity="18"> <xs:complexType> <xs:sequence> <xs:element name="CompositeIdentifierSeparatorPattern" type="xs:string" minOccurs="0" /> <xs:element name="DataSourceProductName" type="xs:string" minOccurs="0" /> <xs:element name="DataSourceProductVersion" type="xs:string" minOccurs="0" /> <xs:element name="DataSourceProductVersionNormalized" type="xs:string" minOccurs="0" /> <xs:element name="GroupByBehavior" msdata:DataType="System.Data.Common.GroupByBehavior, System.Data, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" type="xs:string" minOccurs="0" /> <xs:element name="IdentifierPattern" type="xs:string" minOccurs="0" /> <xs:element name="IdentifierCase" msdata:DataType="System.Data.Common.IdentifierCase, System.Data, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" type="xs:string" minOccurs="0" /> <xs:element name="OrderByColumnsInSelect" type="xs:boolean" minOccurs="0" /> <xs:element name="ParameterMarkerFormat" type="xs:string" minOccurs="0" /> <xs:element name="ParameterMarkerPattern" type="xs:string" minOccurs="0" /> <xs:element name="ParameterNameMaxLength" type="xs:int" minOccurs="0" /> <xs:element name="ParameterNamePattern" type="xs:string" minOccurs="0" /> <xs:element name="QuotedIdentifierPattern" type="xs:string" minOccurs="0" /> <xs:element name="QuotedIdentifierCase" msdata:DataType="System.Data.Common.IdentifierCase, System.Data, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" type="xs:string" minOccurs="0" /> <xs:element name="StatementSeparatorPattern" type="xs:string" minOccurs="0" /> <xs:element name="StringLiteralPattern" type="xs:string" minOccurs="0" /> <xs:element name="SupportedJoinOperators" msdata:DataType="System.Data.Common.SupportedJoinOperators, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DataTypes" msdata:MinimumCapacity="18"> <xs:complexType> <xs:sequence> <xs:element name="TypeName" type="xs:string" minOccurs="0" /> <xs:element name="ProviderDbType" type="xs:int" minOccurs="0" /> <xs:element name="ColumnSize" type="xs:long" minOccurs="0" /> <xs:element name="CreateFormat" type="xs:string" minOccurs="0" /> <xs:element name="CreateParameters" type="xs:string" minOccurs="0" /> <xs:element name="DataType" type="xs:string" minOccurs="0" /> <xs:element name="IsAutoIncrementable" type="xs:boolean" minOccurs="0" /> <xs:element name="IsBestMatch" type="xs:boolean" minOccurs="0" /> <xs:element name="IsCaseSensitive" type="xs:boolean" minOccurs="0" /> <xs:element name="IsFixedLength" type="xs:boolean" minOccurs="0" /> <xs:element name="IsFixedPrecisionScale" type="xs:boolean" minOccurs="0" /> <xs:element name="IsLong" type="xs:boolean" minOccurs="0" /> <xs:element name="IsNullable" type="xs:boolean" minOccurs="0" /> <xs:element name="IsSearchable" type="xs:boolean" minOccurs="0" /> <xs:element name="IsSearchableWithLike" type="xs:boolean" minOccurs="0" /> <xs:element name="IsUnsigned" type="xs:boolean" minOccurs="0" /> <xs:element name="MaximumScale" type="xs:short" minOccurs="0" /> <xs:element name="MinimumScale" type="xs:short" minOccurs="0" /> <xs:element name="IsConcurrencyType" type="xs:boolean" minOccurs="0" /> <xs:element name="MaximumVersion" type="xs:string" minOccurs="0" /> <xs:element name="MinimumVersion" type="xs:string" minOccurs="0" /> <xs:element name="IsLiteralSupported" type="xs:boolean" minOccurs="0" /> <xs:element name="LiteralPrefix" type="xs:string" minOccurs="0" /> <xs:element name="LiteralSuffix" type="xs:string" minOccurs="0" /> <xs:element name="DbType" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ReservedWords" msdata:MinimumCapacity="3"> <xs:complexType> <xs:sequence> <xs:element name="ReservedWord" type="xs:string" minOccurs="0" /> <xs:element name="MaximumVersion" type="xs:string" minOccurs="0" /> <xs:element name="MinimumVersion" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <MetaDataCollections> <CollectionName>Aggregates</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>SQLCommand</PopulationMechanism> <PopulationString>SELECT pg_aggregate.aggfnoid AS AGGREGATE_FUNCTION, pg_aggregate.aggtransfn AS TRANSITION_FUNCTION, pg_aggregate.aggfinalfn AS FINAL_FUNCTION, pg_aggregate.agginitval AS INITIAL_VALUE, pg_type.typname AS BASE_TYPE FROM pg_aggregate left join pg_type ON pg_aggregate.aggtranstype = pg_type.oid ORDER BY pg_aggregate.aggfnoid</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>Casts</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>CheckConstraints</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>CheckConstraintsByTable</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Columns</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Databases</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>DataTable</PopulationMechanism> <PopulationString>DataSourceInformation</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>DataSourceInformation</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>DataTable</PopulationMechanism> <PopulationString>DataSourceInformation</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>User Defined Types</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>DataTable</PopulationMechanism> <PopulationString>DataTypes</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>ForeignKeyColumns</CollectionName> <NumberOfRestrictions>5</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>ForeignKeys</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Functions</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Groups</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>IndexColumns</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Indexes</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>MetaDataCollections</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>DataTable</PopulationMechanism> <PopulationString>MetaDataCollections</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>PrimaryKeys</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>ReservedWords</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>DataTable</PopulationMechanism> <PopulationString>ReservedWords</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>Restrictions</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>DataTable</PopulationMechanism> <PopulationString>Restrictions</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>Schemas</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>SQL Languages</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Tables</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>TableConstraints</CollectionName> <NumberOfRestrictions>7</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>TablePrivileges</CollectionName> <NumberOfRestrictions>5</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Triggers</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>ViewColumns</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>ViewPrivileges</CollectionName> <NumberOfRestrictions>5</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <MetaDataCollections> <CollectionName>Views</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Catalog</RestrictionName> <RestrictionDefault>table_catalog</RestrictionDefault> <RestrictionNumber>1</RestrictionNumber> </Restrictions> <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Schema</RestrictionName> <RestrictionDefault>table_schema</RestrictionDefault> <RestrictionNumber>2</RestrictionNumber> </Restrictions> <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Name</RestrictionName> <RestrictionDefault>table_name</RestrictionDefault> <RestrictionNumber>3</RestrictionNumber> </Restrictions> <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Type</RestrictionName> <RestrictionDefault>table_type</RestrictionDefault> <RestrictionNumber>4</RestrictionNumber> </Restrictions> <DataSourceInformation> <CompositeIdentifierSeparatorPattern>.</CompositeIdentifierSeparatorPattern> <DataSourceProductName>PostgreSQL</DataSourceProductName> <DataSourceProductVersion>7.4+</DataSourceProductVersion> <DataSourceProductVersionNormalized>7.4+</DataSourceProductVersionNormalized> <GroupByBehavior>2</GroupByBehavior> <IdentifierPattern>(^\[\p{Lo}\p{Lu}\p{Ll}_@#][\p{Lo}\p{Lu}\p{Ll}\p{Nd}@$#_]*$)|(^\[[^\]\0]|\]\]+\]$)|(^\"[^\"\0]|\"\"+\"$)</IdentifierPattern> <IdentifierCase>2</IdentifierCase> <OrderByColumnsInSelect>false</OrderByColumnsInSelect> <ParameterMarkerFormat>{0}</ParameterMarkerFormat> <ParameterMarkerPattern>@[\p{Lo}\p{Lu}\p{Ll}\p{Lm}_@#][\p{Lo}\p{Lu}\p{Ll}\p{Lm}\p{Nd}\uff3f_@#\$]*(?=\s+|$)</ParameterMarkerPattern> <ParameterNameMaxLength>128</ParameterNameMaxLength> <ParameterNamePattern>^[\p{Lo}\p{Lu}\p{Ll}\p{Lm}_@#][\p{Lo}\p{Lu}\p{Ll}\p{Lm}\p{Nd}\uff3f_@#\$]*(?=\s+|$)</ParameterNamePattern> <QuotedIdentifierPattern>(([^\""|\"\")*)</QuotedIdentifierPattern> <QuotedIdentifierCase>2</QuotedIdentifierCase> <StatementSeparatorPattern>;</StatementSeparatorPattern> <StringLiteralPattern>'(([^']|'')*)'</StringLiteralPattern> <SupportedJoinOperators>15</SupportedJoinOperators> </DataSourceInformation> <DataTypes> <TypeName>char</TypeName> <ProviderDbType>3</ProviderDbType> <ColumnSize>32767</ColumnSize> <CreateFormat /> <CreateParameters>length</CreateParameters> <DataType>System.String</DataType> <IsAutoIncrementable>false</IsAutoIncrementable> <IsBestMatch>false</IsBestMatch> <IsCaseSensitive>true</IsCaseSensitive> <IsFixedLength>false</IsFixedLength> <IsFixedPrecisionScale>false</IsFixedPrecisionScale> <IsLong>false</IsLong> <IsNullable>true</IsNullable> <IsSearchable>true</IsSearchable> <IsSearchableWithLike>true</IsSearchableWithLike> <IsUnsigned>false</IsUnsigned> <MaximumScale>0</MaximumScale> <MinimumScale>0</MinimumScale> <IsConcurrencyType>false</IsConcurrencyType> <IsLiteralSupported>true</IsLiteralSupported> <LiteralPrefix>'</LiteralPrefix> <LiteralSuffix>'</LiteralSuffix> <DbType>23</DbType> </DataTypes> <ReservedWords> <ReservedWord>ACTION</ReservedWord> </ReservedWords> </NewDataSet> --- NEW FILE: PgTables.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.Schema { internal class PgTables : PgSchema { #region · Protected Methods · protected override string BuildSql(string[] restrictions) { string sql = "SELECT " + "null AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "case pg_class.relkind " + "when 'r' THEN 'TABLE' " + "when 'v' THEN 'VIEW' " + "END AS TABLE_TYPE, " + "pg_class.relhasindex AS HAS_INDEXES, " + "pg_class.relisshared AS IS_SHARED, " + "pg_class.relchecks AS CONSTRAINT_COUNT, " + "pg_class.reltriggers AS TRIGGER_COUNT, " + "pg_class.relhaspkey AS HAS_PRIMARY_KEY, " + "pg_class.relhasrules AS HAS_RULES, " + "pg_class.relhassubclass AS HAS_SUBCLASS, " + "pg_description.description AS DESCRIPTION "+ "FROM pg_class " + "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + "left join pg_description ON pg_class.oid = pg_description.objoid " + "WHERE pg_class.relkind = 'r' " + "ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; if (restrictions != null && restrictions.Length > 0) { sql += " WHERE "; // TABLE_CATALOG if (restrictions.Length > 0) { } // TABLE_SCHEMA if (restrictions.Length > 1 && restrictions[1] != null) { sql += String.Format("pg_namespace.nspname = '{0}'", restrictions[1]); } // TABLE_NAME if (restrictions.Length > 2 && restrictions[2] != null) { sql += String.Format("pg_class.relname = '{0}'", restrictions[1]); } // TABLE_TYPE if (restrictions.Length > 2 && restrictions[2] != null) { sql += String.Format("pg_class.relkind = '{0}'", restrictions[2]); } } return sql; } #endregion #region · Protected Methods · protected override string[] ParseRestrictions(string[] restrictions) { string[] parsed = restrictions; if (parsed != null) { if (parsed.Length == 4 && parsed[3] != null) { switch (parsed[3].ToString().ToUpper()) { case "TABLE": parsed[3] = "r"; break; case "VIEW": parsed[3] = "v"; break; } } } return parsed; } #endregion } } |
From: Carlos G. Á. <car...@us...> - 2005-09-12 17:09:30
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15915/Schema Log Message: Directory /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Schema added to the repository |
From: Carlos G. Á. <car...@us...> - 2005-09-12 16:19:06
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5015/PostgreSql/Data/Protocol Modified Files: PgStatement.cs Log Message: Updated sources Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgStatement.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PgStatement.cs 11 Sep 2005 19:46:23 -0000 1.5 --- PgStatement.cs 12 Sep 2005 16:18:58 -0000 1.6 *************** *** 327,331 **** this.ProcessSqlPacket(response); } ! while (!response.IsReadyForQuery); // reset rowIndex --- 327,331 ---- this.ProcessSqlPacket(response); } ! while (!response.IsReadyForQuery && !response.IsCommandComplete && !response.IsPortalSuspended); // reset rowIndex *************** *** 547,551 **** this.ProcessSqlPacket(response); } ! while (response.IsCloseComplete); // Clear rows --- 547,551 ---- this.ProcessSqlPacket(response); } ! while (!response.IsCloseComplete); // Clear rows |
From: Carlos G. Á. <car...@us...> - 2005-09-12 14:48:29
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15275/PostgreSql/Data/Protocol Modified Files: PgDbClient.cs PgOutputPacket.cs Log Message: Updated sources Index: PgDbClient.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgDbClient.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PgDbClient.cs 11 Sep 2005 19:46:23 -0000 1.5 --- PgDbClient.cs 12 Sep 2005 14:48:19 -0000 1.6 *************** *** 226,230 **** { this.options = options; ! this.encoding = Encoding.UTF8; GC.SuppressFinalize(this); --- 226,230 ---- { this.options = options; ! this.encoding = Encoding.Default; GC.SuppressFinalize(this); *************** *** 277,281 **** packet.Write((byte)0); // Terminator - // Handshake protocol will be negotiated here if the connection is using SSL/TLS this.SendSimplePacket(packet); --- 277,280 ---- *************** *** 449,453 **** string parameterValue = packet.ReadNullString(); ! parameterStatus.Add(parameterName, parameterValue); switch (parameterName) --- 448,452 ---- string parameterValue = packet.ReadNullString(); ! this.ParameterStatus.Add(parameterName, parameterValue); switch (parameterName) Index: PgOutputPacket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgOutputPacket.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgOutputPacket.cs 11 Sep 2005 13:29:16 -0000 1.4 --- PgOutputPacket.cs 12 Sep 2005 14:48:19 -0000 1.5 *************** *** 59,63 **** public PgOutputPacket(Encoding encoding) - : this() { this.stream = new MemoryStream(); --- 59,62 ---- |
From: Carlos G. Á. <car...@us...> - 2005-09-12 14:48:27
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15275/PostgreSql/Data/PostgreSqlClient Modified Files: PgCommand.cs Log Message: Updated sources Index: PgCommand.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgCommand.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgCommand.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgCommand.cs 12 Sep 2005 14:48:19 -0000 1.4 *************** *** 462,467 **** string portalName = "PR" + this.GetStmtName(); ! this.statement = conn.Database.CreateStatement( ! prepareName, portalName, this.ParseParameterNames(sql)); // Parse statement --- 462,466 ---- string portalName = "PR" + this.GetStmtName(); ! this.statement = conn.Database.CreateStatement(prepareName, portalName, this.ParseParameterNames(sql)); // Parse statement *************** *** 487,491 **** try { ! if (this.parameters.Count != 0) { // Set parameter values --- 486,490 ---- try { ! if (this.Parameters.Count != 0) { // Set parameter values *************** *** 686,690 **** private void SetParameterValues() { ! if (this.parameters.Count != 0) { for (int i = 0; i < this.statement.Parameters.Length; i++) --- 685,689 ---- private void SetParameterValues() { ! if (this.Parameters.Count != 0) { for (int i = 0; i < this.statement.Parameters.Length; i++) *************** *** 694,704 **** if (this.namedParameters.Count > 0) { ! index = this.parameters.IndexOf(this.namedParameters[i]); } ! if (this.parameters[index].Direction == ParameterDirection.Input || ! this.parameters[index].Direction == ParameterDirection.InputOutput) { ! if (this.parameters[index].Value == System.DBNull.Value) { this.statement.Parameters[i].Value = null; --- 693,703 ---- if (this.namedParameters.Count > 0) { ! index = this.Parameters.IndexOf(this.namedParameters[i]); } ! if (this.Parameters[index].Direction == ParameterDirection.Input || ! this.Parameters[index].Direction == ParameterDirection.InputOutput) { ! if (this.Parameters[index].Value == System.DBNull.Value) { this.statement.Parameters[i].Value = null; *************** *** 706,710 **** else { ! this.statement.Parameters[i].Value = this.parameters[index].Value; } } --- 705,709 ---- else { ! this.statement.Parameters[i].Value = this.Parameters[index].Value; } } |
From: Carlos G. Á. <car...@us...> - 2005-09-11 19:50:11
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3757 Added Files: PgConnectionOptions.cs Removed Files: PgConnectionParams.cs Log Message: Updated sources --- PgConnectionParams.cs DELETED --- --- NEW FILE: PgConnectionOptions.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; using System.Text; using System.Text.RegularExpressions; namespace PostgreSql.Data.Protocol { internal sealed class PgConnectionOptions { #region · Fields · private string dataSource; private string database; private string userID; private string password; private int portNumber; private int packetSize; private int connectionTimeout; private long connectionLifetime; private int minPoolSize; private int maxPoolSize; private bool pooling; private bool ssl; #endregion #region · Properties · public string DataSource { get { return this.dataSource; } } public string Database { get { return this.database; } set { this.database = value; } } public string UserID { get { return this.userID; } } public string Password { get { return this.password; } } public int PacketSize { get { return this.packetSize; } } public int PortNumber { get { return this.portNumber; } } public int ConnectionTimeout { get { return this.connectionTimeout; } } public long ConnectionLifeTime { get { return this.connectionLifetime; } } public int MinPoolSize { get { return this.minPoolSize; } } public int MaxPoolSize { get { return this.maxPoolSize; } } public bool Pooling { get { return this.pooling; } } public bool SSL { get { return this.ssl; } } #endregion #region · Constructors · public PgConnectionOptions(string connectionString) { if (connectionString == null) { throw new InvalidOperationException("connectionString cannot be null."); } this.SetDefaultValues(); this.ParseConnectionString(connectionString); } #endregion #region · Private Methods · private void SetDefaultValues() { this.dataSource = "localhost"; this.userID = "postgres"; this.password = null; this.portNumber = 5432; this.packetSize = 8192; this.pooling = true; this.connectionTimeout = 15; this.connectionLifetime = 0; this.minPoolSize = 0; this.maxPoolSize = 100; } private void ParseConnectionString(string connectionString) { Regex search = new Regex(@"([\w\s\d]*)\s*=\s*([^;]*)"); MatchCollection elements = search.Matches(connectionString); foreach (Match element in elements) { if (element.Groups[2].Value.Trim().Length > 0) { switch (element.Groups[1].Value.Trim().ToLower()) { case "data source": case "server": case "host": this.dataSource = element.Groups[2].Value.Trim(); break; case "database": this.database = element.Groups[2].Value.Trim(); break; case "user name": case "user id": case "user": this.userID = element.Groups[2].Value.Trim(); break; case "user password": case "password": this.password = element.Groups[2].Value.Trim(); break; case "port number": this.portNumber = Int32.Parse(element.Groups[2].Value.Trim()); break; case "connection timeout": this.connectionTimeout = Int32.Parse(element.Groups[2].Value.Trim()); break; case "packet size": this.packetSize = Int32.Parse(element.Groups[2].Value.Trim()); break; case "pooling": this.pooling = Boolean.Parse(element.Groups[2].Value.Trim()); break; case "connection lifetime": this.connectionLifetime = Int64.Parse(element.Groups[2].Value.Trim()); break; case "min pool size": this.minPoolSize = Int32.Parse(element.Groups[2].Value.Trim()); break; case "max pool size": this.maxPoolSize = Int32.Parse(element.Groups[2].Value.Trim()); break; case "ssl": this.ssl = Boolean.Parse(element.Groups[2].Value.Trim()); break; } } } if (this.UserID.Length == 0 || this.DataSource.Length == 0) { throw new ArgumentException("An invalid connection string argument has been supplied or a required connection string argument has not been supplied."); } else { if (this.PacketSize < 512 || this.PacketSize > 32767) { string msg = String.Format("'Packet Size' value of {0} is not valid.\r\nThe value should be an integer >= 512 and <= 32767.", this.PacketSize); throw new ArgumentException(msg); } } } #endregion } } |
From: Carlos G. Á. <car...@us...> - 2005-09-11 19:46:31
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3208/PostgreSql/Data/Protocol Modified Files: PgCharSetCollection.cs PgDbClient.cs PgStatement.cs PgTypeCollection.cs Log Message: Updated sources Index: PgDbClient.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgDbClient.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgDbClient.cs 11 Sep 2005 13:29:16 -0000 1.4 --- PgDbClient.cs 11 Sep 2005 19:46:23 -0000 1.5 *************** *** 40,43 **** --- 40,48 ---- public static void InitializeTypes() { + if (DataTypes.Count > 0) + { + return; + } + DataTypes.Add(16 , "bool" , PgDataType.Boolean , 0, PgTypeFormat.Binary, 1); DataTypes.Add(17 , "bytea" , PgDataType.Binary , 0, PgTypeFormat.Binary, 0); *************** *** 97,100 **** --- 102,110 ---- public static void InitializeCharSets() { + if (Charactersets.Count > 0) + { + return; + } + Charactersets.Add("SQL_ASCII" , "ascii"); // ASCII Charactersets.Add("EUC_JP" , "euc-jp"); // Japanese EUC *************** *** 146,149 **** --- 156,160 ---- private BinaryWriter send; private PgConnectionOptions options; + private Encoding encoding; private char transactionStatus; *************** *** 155,159 **** { get { return this.handle; } - set { this.handle = value; } } --- 166,169 ---- *************** *** 161,171 **** { get { return this.secretKey; } - set { this.secretKey = value; } } public Hashtable ParameterStatus { ! get { return this.parameterStatus; } ! set { this.parameterStatus = value; } } --- 171,186 ---- { get { return this.secretKey; } } public Hashtable ParameterStatus { ! get ! { ! if (this.parameterStatus == null) ! { ! this.parameterStatus = Hashtable.Synchronized(new Hashtable()); ! } ! return this.parameterStatus; ! } } *************** *** 173,177 **** { get { return this.options; } ! set { this.options = value; } } --- 188,196 ---- { get { return this.options; } ! } ! ! public Encoding Encoding ! { ! get { return this.encoding; } } *************** *** 199,211 **** #region · Constructors · ! public PgDbClient() ! : this(null) { } ! public PgDbClient(PgConnectionOptions settings) { ! this.parameterStatus = new Hashtable(); ! this.options = settings; GC.SuppressFinalize(this); --- 218,230 ---- #region · Constructors · ! public PgDbClient(string connectionString) ! : this(new PgConnectionOptions(connectionString)) { } ! public PgDbClient(PgConnectionOptions options) { ! this.options = options; ! this.encoding = Encoding.UTF8; GC.SuppressFinalize(this); *************** *** 230,240 **** { // Send SSL request message ! this.SSLRequest(); ! ! if (this.options.SSL) { this.secureStream = new SslStream(this.networkStream, false); ! this.SecureStream.AuthenticateAsClient(this.options.ServerName); this.receive = new BinaryReader(this.SecureStream); --- 249,257 ---- { // Send SSL request message ! if (this.SslRequest()) { this.secureStream = new SslStream(this.networkStream, false); ! this.SecureStream.AuthenticateAsClient(this.options.DataSource); this.receive = new BinaryReader(this.SecureStream); *************** *** 244,252 **** // Send Startup message ! PgOutputPacket packet = new PgOutputPacket(this.options.Encoding); packet.Write(PgCodes.PROTOCOL_VERSION3); packet.WriteNullString("user"); ! packet.WriteNullString(this.options.UserName); if (this.options.Database != null && this.options.Database.Length > 0) --- 261,269 ---- // Send Startup message ! PgOutputPacket packet = new PgOutputPacket(this.Encoding); packet.Write(PgCodes.PROTOCOL_VERSION3); packet.WriteNullString("user"); ! packet.WriteNullString(this.options.UserID); if (this.options.Database != null && this.options.Database.Length > 0) *************** *** 393,397 **** } ! responsePacket = new PgResponsePacket(type, this.options.Encoding, buffer); } catch (IOException) --- 410,414 ---- } ! responsePacket = new PgResponsePacket(type, this.Encoding, buffer); } catch (IOException) *************** *** 421,426 **** case PgBackendCodes.BACKEND_KEY_DATA: // BackendKeyData ! this.Handle = packet.ReadInt32(); ! this.SecretKey = packet.ReadInt32(); break; } --- 438,443 ---- case PgBackendCodes.BACKEND_KEY_DATA: // BackendKeyData ! this.handle = packet.ReadInt32(); ! this.secretKey = packet.ReadInt32(); break; } *************** *** 437,441 **** { case "client_encoding": ! this.options.Encoding = Charactersets[parameterValue].Encoding; break; } --- 454,458 ---- { case "client_encoding": ! this.encoding = Charactersets[parameterValue].Encoding; break; } *************** *** 447,451 **** int authType = packet.ReadInt32(); ! PgOutputPacket outPacket = new PgOutputPacket(this.options.Encoding); switch (authType) --- 464,468 ---- int authType = packet.ReadInt32(); ! PgOutputPacket outPacket = new PgOutputPacket(this.Encoding); switch (authType) *************** *** 465,469 **** case PgCodes.AUTH_CLEARTEXT_PASSWORD: // Cleartext password is required ! outPacket.WriteNullString(this.options.UserPassword); break; --- 482,486 ---- case PgCodes.AUTH_CLEARTEXT_PASSWORD: // Cleartext password is required ! outPacket.WriteNullString(this.options.Password); break; *************** *** 480,484 **** // Second calculate md5 of password + user string userHash = MD5Authentication.GetMD5Hash( ! this.options.Encoding.GetBytes(this.options.UserName), this.options.UserPassword); // Third calculate real MD5 hash --- 497,501 ---- // Second calculate md5 of password + user string userHash = MD5Authentication.GetMD5Hash( ! this.Encoding.GetBytes(this.options.UserID), this.options.Password); // Third calculate real MD5 hash *************** *** 641,645 **** try { ! PgOutputPacket packet = new PgOutputPacket(this.options.Encoding); // Send packet to the server --- 658,662 ---- try { ! PgOutputPacket packet = new PgOutputPacket(this.Encoding); // Send packet to the server *************** *** 659,663 **** try { ! PgOutputPacket packet = new PgOutputPacket(this.options.Encoding); // Send packet to the server --- 676,680 ---- try { ! PgOutputPacket packet = new PgOutputPacket(this.Encoding); // Send packet to the server *************** *** 713,722 **** } ! public void SSLRequest() { lock (this) { - this.options.SSL = false; - try { --- 730,739 ---- } ! public bool SslRequest() { + bool sslAvailable = false; + lock (this) { try { *************** *** 729,750 **** // Receive server response ! char sslSupport = Convert.ToChar(this.networkStream.ReadByte()); ! ! switch (sslSupport) { case 'S': ! this.options.SSL = true; break; default: ! this.options.SSL = false; break; } } ! catch (Exception) { throw; } } } --- 746,767 ---- // Receive server response ! switch (Convert.ToChar(this.networkStream.ReadByte())) { case 'S': ! sslAvailable = true; break; default: ! sslAvailable = false; break; } } ! catch { throw; } } + + return sslAvailable; } *************** *** 787,791 **** private void InitializeSocket() { ! IPAddress hostadd = Dns.GetHostEntry(this.options.ServerName).AddressList[0]; this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); --- 804,808 ---- private void InitializeSocket() { ! IPAddress hostadd = Dns.GetHostEntry(this.options.DataSource).AddressList[0]; this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); *************** *** 801,805 **** // Make the socket to connect to the Server ! this.socket.Connect(new IPEndPoint(hostadd, this.options.ServerPort)); this.networkStream = new NetworkStream(socket, true); --- 818,822 ---- // Make the socket to connect to the Server ! this.socket.Connect(new IPEndPoint(hostadd, this.options.PortNumber)); this.networkStream = new NetworkStream(socket, true); Index: PgTypeCollection.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgTypeCollection.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgTypeCollection.cs 11 Sep 2005 12:12:31 -0000 1.2 --- PgTypeCollection.cs 11 Sep 2005 19:46:23 -0000 1.3 *************** *** 23,46 **** namespace PostgreSql.Data.Protocol { ! internal class PgTypeCollection : ArrayList { #region · Properties · ! public new PgType this[int oid] { ! get { return (PgType)base[IndexOf(oid)]; } ! set { base[IndexOf(oid)] = (PgType)value; } } public PgType this[string name] { ! get { return (PgType)this[IndexOf(name)]; } ! set { this[IndexOf(name)] = (PgType)value; } ! } ! ! public PgType this[DbType systemType] ! { ! get { return (PgType)this[IndexOf(systemType)]; } ! set { this[IndexOf(systemType)] = (PgType)value; } } --- 23,40 ---- namespace PostgreSql.Data.Protocol { ! internal class PgTypeCollection : CollectionBase { #region · Properties · ! public PgType this[int oid] { ! get { return (PgType)this.List[this.IndexOf(oid)]; } ! set { this.List[this.IndexOf(oid)] = (PgType)value; } } public PgType this[string name] { ! get { return (PgType)this.List[this.IndexOf(name)]; } ! set { this.List[this.IndexOf(name)] = (PgType)value; } } *************** *** 74,78 **** int index = 0; ! foreach(PgType item in this) { if (this.CultureAwareCompare(item.Name, name)) --- 68,72 ---- int index = 0; ! foreach (PgType item in this) { if (this.CultureAwareCompare(item.Name, name)) *************** *** 88,97 **** public void RemoveAt(string typeName) { ! this.RemoveAt(IndexOf(typeName)); } public PgType Add(PgType type) { ! base.Add(type); return type; --- 82,91 ---- public void RemoveAt(string typeName) { ! this.List.RemoveAt(this.IndexOf(typeName)); } public PgType Add(PgType type) { ! this.List.Add(type); return type; *************** *** 100,108 **** public PgType Add(int oid, string name, PgDataType dataType, int elementType, PgTypeFormat formatCode, int size) { ! PgType type = new PgType(oid, name, dataType, elementType, formatCode, size); ! ! base.Add(type); ! ! return type; } --- 94,98 ---- public PgType Add(int oid, string name, PgDataType dataType, int elementType, PgTypeFormat formatCode, int size) { ! return this.Add(new PgType(oid, name, dataType, elementType, formatCode, size)); } Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgStatement.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgStatement.cs 11 Sep 2005 13:29:16 -0000 1.4 --- PgStatement.cs 11 Sep 2005 19:46:23 -0000 1.5 *************** *** 178,182 **** this.parameters = new PgParameter[0]; ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); packet.WriteNullString(this.ParseName); --- 178,182 ---- this.parameters = new PgParameter[0]; ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); packet.WriteNullString(this.ParseName); *************** *** 218,222 **** string name = ((stmtType == 'S') ? this.ParseName : this.PortalName); ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); packet.Write((byte)stmtType); --- 218,222 ---- string name = ((stmtType == 'S') ? this.ParseName : this.PortalName); ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); packet.Write((byte)stmtType); *************** *** 257,261 **** try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); // Destination portal name --- 257,261 ---- try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); // Destination portal name *************** *** 308,312 **** try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); packet.WriteNullString(this.PortalName); --- 308,312 ---- try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); packet.WriteNullString(this.PortalName); *************** *** 363,367 **** try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); // Function id --- 363,367 ---- try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); // Function id *************** *** 418,422 **** try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); packet.WriteNullString(this.stmtText); --- 418,422 ---- try { ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); packet.WriteNullString(this.stmtText); *************** *** 528,532 **** string name = ((stmtType == 'S') ? this.ParseName : this.PortalName); ! PgOutputPacket packet = new PgOutputPacket(this.db.Options.Encoding); packet.Write((byte)stmtType); --- 528,532 ---- string name = ((stmtType == 'S') ? this.ParseName : this.PortalName); ! PgOutputPacket packet = new PgOutputPacket(this.db.Encoding); packet.Write((byte)stmtType); Index: PgCharSetCollection.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol/PgCharSetCollection.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgCharSetCollection.cs 11 Sep 2005 13:29:16 -0000 1.3 --- PgCharSetCollection.cs 11 Sep 2005 19:46:23 -0000 1.4 *************** *** 25,40 **** internal sealed class PgCharactersetCollection : CollectionBase { - #region · Fields · - - private ArrayList charactersets; - - #endregion - #region · Properties · public PgCharacterSet this[int index] { ! get { return (PgCharacterSet)this.charactersets[index]; } ! set { this.charactersets[index] = (PgCharacterSet)value; } } --- 25,34 ---- internal sealed class PgCharactersetCollection : CollectionBase { #region · Properties · public PgCharacterSet this[int index] { ! get { return (PgCharacterSet)this.List[index]; } ! set { this.List[index] = (PgCharacterSet)value; } } *************** *** 51,55 **** public bool Contains(string characterset) { ! return (-1 != this.charactersets.IndexOf(characterset)); } --- 45,49 ---- public bool Contains(string characterset) { ! return (-1 != this.List.IndexOf(characterset)); } *************** *** 73,82 **** public void RemoveAt(string charset) { ! this.charactersets.RemoveAt(this.IndexOf(charset)); } public PgCharacterSet Add(PgCharacterSet charset) { ! this.charactersets.Add(charset); return charset; --- 67,76 ---- public void RemoveAt(string charset) { ! this.List.RemoveAt(this.IndexOf(charset)); } public PgCharacterSet Add(PgCharacterSet charset) { ! this.List.Add(charset); return charset; |
From: Carlos G. Á. <car...@us...> - 2005-09-11 19:46:30
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3208/PostgreSql/Data/PostgreSqlClient Modified Files: PgConnection.cs PgConnectionInternal.cs PgConnectionPool.cs Log Message: Updated sources Index: PgConnectionPool.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgConnectionPool.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgConnectionPool.cs 11 Sep 2005 12:12:31 -0000 1.2 --- PgConnectionPool.cs 11 Sep 2005 19:46:23 -0000 1.3 *************** *** 41,49 **** } ! public static PgConnectionInternal GetConnection(string connectionString, PgConnection owningConnection) { Init(); ! return ((PgConnectionInternal)pool.CheckOut(connectionString, owningConnection)); } --- 41,49 ---- } ! public static PgConnectionInternal GetConnection(PgConnection owningConnection) { Init(); ! return ((PgConnectionInternal)pool.CheckOut(owningConnection)); } *************** *** 83,89 **** #region · Methods · ! public PgConnectionInternal CheckOut(string connectionString, PgConnection owningConnection) { ! PgConnectionInternal newConnection = null; lock (typeof(PgConnectionPool)) --- 83,90 ---- #region · Methods · ! public PgConnectionInternal CheckOut(PgConnection owningConnection) { ! string connectionString = owningConnection.ConnectionString; ! PgConnectionInternal newConnection = null; lock (typeof(PgConnectionPool)) *************** *** 100,106 **** if (this.Validate(connection, connectionString)) { ! if (connection.Lifetime != 0) { ! if ((now - connection.Created) > connection.Lifetime) { this.unlocked.Remove(connection); --- 101,107 ---- if (this.Validate(connection, connectionString)) { ! if (connection.Options.ConnectionLifeTime != 0) { ! if ((now - connection.Created) > connection.Options.ConnectionLifeTime) { this.unlocked.Remove(connection); *************** *** 135,139 **** } ! newConnection = this.Create(connectionString); newConnection.OwningConnection = owningConnection; --- 136,140 ---- } ! newConnection = this.Create(owningConnection); newConnection.OwningConnection = owningConnection; *************** *** 177,189 **** } ! private PgConnectionInternal Create(string connectionString) { try { ! PgConnectionInternal connection = new PgConnectionInternal(connectionString); ! ! return connection; } ! catch (Exception) { throw; --- 178,188 ---- } ! private PgConnectionInternal Create(PgConnection owningConnection) { try { ! return new PgConnectionInternal(owningConnection); } ! catch { throw; *************** *** 195,202 **** try { ! return (connection.ConnectionString == connectionString && ! connection.Verify()); } ! catch (Exception) { throw; --- 194,200 ---- try { ! return (connection.OwningConnection.ConnectionString == connectionString && connection.Verify()); } ! catch { throw; *************** *** 213,217 **** } } ! catch (Exception) { throw new PgException("Error closing database connection."); --- 211,215 ---- } } ! catch { throw new PgException("Error closing database connection."); *************** *** 232,238 **** foreach (PgConnectionInternal connection in list) { ! if (connection.Lifetime != 0) { ! if ((now - connection.Created) >= connection.Lifetime) { this.unlocked.Remove(connection); --- 230,236 ---- foreach (PgConnectionInternal connection in list) { ! if (connection.Options.ConnectionLifeTime != 0) { ! if ((now - connection.Created) >= connection.Options.ConnectionLifeTime) { this.unlocked.Remove(connection); Index: PgConnectionInternal.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PgConnectionInternal.cs 11 Sep 2005 13:29:16 -0000 1.5 --- PgConnectionInternal.cs 11 Sep 2005 19:46:23 -0000 1.6 *************** *** 20,24 **** using System.Data; using System.Text; - using System.Text.RegularExpressions; using PostgreSql.Data.Protocol; --- 20,23 ---- *************** *** 29,33 **** #region · Fields · - private string connectionString; private PgConnection owningConnection; private PgDbClient database; --- 28,31 ---- *************** *** 35,39 **** private PgTransaction activeTransaction; private ArrayList preparedCommands; - private int lifetime; private long created; private bool pooled; --- 33,36 ---- *************** *** 54,68 **** } - public string ConnectionString - { - get { return this.connectionString; } - } - - public int Lifetime - { - get { return this.lifetime; } - set { this.lifetime = value; } - } - public long Created { --- 51,54 ---- *************** *** 88,92 **** if (this.preparedCommands == null) { ! this.preparedCommands = new ArrayList(); } return this.preparedCommands; --- 74,78 ---- if (this.preparedCommands == null) { ! this.preparedCommands = ArrayList.Synchronized(new ArrayList()); } return this.preparedCommands; *************** *** 104,107 **** --- 90,94 ---- public PgConnection OwningConnection { + get { return this.owningConnection; } set { this.owningConnection = value; } } *************** *** 111,127 **** #region · Constructors · ! public PgConnectionInternal(string connectionString) { ! this.options = new PgConnectionOptions(); ! this.connectionString = connectionString; ! this.lifetime = 0; this.created = 0; this.pooled = true; - this.database = new PgDbClient(); - - if (connectionString != null) - { - this.ParseConnectionString(connectionString); - } } --- 98,107 ---- #region · Constructors · ! public PgConnectionInternal(PgConnection owningConnection) { ! this.owningConnection = owningConnection; ! this.options = new PgConnectionOptions(owningConnection.ConnectionString); this.created = 0; this.pooled = true; } *************** *** 134,138 **** try { ! this.database.Options = this.Options; this.database.Connect(); } --- 114,118 ---- try { ! this.database = new PgDbClient(this.options); this.database.Connect(); } *************** *** 240,331 **** #endregion - - #region · Private Methods · - - private void ParseConnectionString(string connectionStirng) - { - Regex search = new Regex(@"([\w\s\d]*)\s*=\s*([^;]*)"); - MatchCollection elements = search.Matches(connectionString); - - foreach (Match element in elements) - { - if (element.Groups[2].Value.Trim().Length > 0) - { - switch (element.Groups[1].Value.Trim().ToLower()) - { - case "data source": - case "server": - case "host": - this.options.ServerName = element.Groups[2].Value.Trim(); - break; - - case "database": - this.options.Database = element.Groups[2].Value.Trim(); - break; - - case "user name": - case "user id": - case "user": - this.options.UserName = element.Groups[2].Value.Trim(); - break; - - case "user password": - case "password": - this.options.UserPassword = element.Groups[2].Value.Trim(); - break; - - case "port": - case "port number": - this.options.ServerPort = Int32.Parse(element.Groups[2].Value.Trim()); - break; - - case "timeout": - case "connection timeout": - this.options.Timeout = Int32.Parse(element.Groups[2].Value.Trim()); - break; - - case "packet size": - this.options.PacketSize = Int32.Parse(element.Groups[2].Value.Trim()); - break; - - case "pooling": - this.options.Pooling = Boolean.Parse(element.Groups[2].Value.Trim()); - break; - - case "connection lifetime": - this.lifetime = Int32.Parse(element.Groups[2].Value.Trim()); - break; - - case "min pool size": - throw new NotImplementedException(); - - case "max pool size": - throw new NotImplementedException(); - - case "ssl": - this.options.SSL = Boolean.Parse(element.Groups[2].Value.Trim()); - break; - } - } - } - - if (options.UserName == String.Empty || options.ServerName == String.Empty || options.ServerPort == 0) - { - throw new ArgumentException("An invalid connection string argument has been supplied or a required connection string argument has not been supplied."); - } - else - { - if (options.PacketSize < 512 || options.PacketSize > 32767) - { - StringBuilder msg = new StringBuilder(); - - msg.AppendFormat("'Packet Size' value of {0} is not valid.\r\nThe value should be an integer >= 512 and <= 32767.", options.PacketSize); - - throw new ArgumentException(msg.ToString()); - } - } - } - - #endregion } } \ No newline at end of file --- 220,223 ---- Index: PgConnection.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgConnection.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgConnection.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgConnection.cs 11 Sep 2005 19:46:23 -0000 1.4 *************** *** 53,56 **** --- 53,57 ---- private PgConnectionInternal connectionInternal; + private PgConnectionOptions options; private ConnectionState state; private bool disposed; *************** *** 72,76 **** if (state == ConnectionState.Closed) { ! PgConnectionInternal tmpConn = new PgConnectionInternal(value); this.connectionString = value; } --- 73,77 ---- if (state == ConnectionState.Closed) { ! this.options = new PgConnectionOptions(value); this.connectionString = value; } *************** *** 85,89 **** if (this.connectionInternal != null) { ! return this.connectionInternal.Options.Timeout; } else --- 86,90 ---- if (this.connectionInternal != null) { ! return this.connectionInternal.Options.ConnectionTimeout; } else *************** *** 117,121 **** if (this.connectionInternal != null) { ! return this.connectionInternal.Options.ServerName; } else --- 118,122 ---- if (this.connectionInternal != null) { ! return this.connectionInternal.Options.DataSource; } else *************** *** 311,324 **** this.state = ConnectionState.Connecting; - PgConnectionInternal tmp = new PgConnectionInternal(connectionString); - // Open connection ! if (tmp.Options.Pooling) { ! this.connectionInternal = PgConnectionPool.GetConnection(this.connectionString, this); } else { ! this.connectionInternal = new PgConnectionInternal(this.connectionString); this.connectionInternal.OwningConnection = this; --- 312,323 ---- this.state = ConnectionState.Connecting; // Open connection ! if (this.options.Pooling) { ! this.connectionInternal = PgConnectionPool.GetConnection(this); } else { ! this.connectionInternal = new PgConnectionInternal(this); this.connectionInternal.OwningConnection = this; |
From: Carlos G. Á. <car...@us...> - 2005-09-11 13:30:27
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/Protocol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26452 Removed Files: SslConnectionCallback.cs Log Message: Updated sources --- SslConnectionCallback.cs DELETED --- |
Update of /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26088/Data/PostgreSqlClient Modified Files: PgConnectionInternal.cs PgDataReader.cs PgInfoMessageEventArgs.cs PgNotificationEventArgs.cs Added Files: PgInfoMessageEventHandler.cs Log Message: Updated sources Index: PgInfoMessageEventArgs.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgInfoMessageEventArgs.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgInfoMessageEventArgs.cs 11 Sep 2005 12:12:31 -0000 1.2 --- PgInfoMessageEventArgs.cs 11 Sep 2005 13:29:16 -0000 1.3 *************** *** 18,31 **** using System; using PostgreSql.Data.Protocol; - using PostgreSql.Data.DbSchema; namespace PostgreSql.Data.PostgreSqlClient { - #region Delegates - - public delegate void PgInfoMessageEventHandler(object sender, PgInfoMessageEventArgs e); - - #endregion - public sealed class PgInfoMessageEventArgs : EventArgs { --- 18,24 ---- Index: PgConnectionInternal.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgConnectionInternal.cs 11 Sep 2005 12:12:31 -0000 1.4 --- PgConnectionInternal.cs 11 Sep 2005 13:29:16 -0000 1.5 *************** *** 22,26 **** using System.Text.RegularExpressions; using PostgreSql.Data.Protocol; - using PostgreSql.Data.DbSchema; namespace PostgreSql.Data.PostgreSqlClient --- 22,25 ---- *************** *** 33,37 **** private PgConnection owningConnection; private PgDbClient database; ! private PgConnectionParams options; private PgTransaction activeTransaction; private ArrayList preparedCommands; --- 32,36 ---- private PgConnection owningConnection; private PgDbClient database; ! private PgConnectionOptions options; private PgTransaction activeTransaction; private ArrayList preparedCommands; *************** *** 78,82 **** } ! public PgConnectionParams Options { get { return this.options; } --- 77,81 ---- } ! public PgConnectionOptions Options { get { return this.options; } *************** *** 114,118 **** public PgConnectionInternal(string connectionString) { ! this.options = new PgConnectionParams(); this.connectionString = connectionString; this.lifetime = 0; --- 113,117 ---- public PgConnectionInternal(string connectionString) { ! this.options = new PgConnectionOptions(); this.connectionString = connectionString; this.lifetime = 0; *************** *** 135,139 **** try { ! this.database.Settings = this.Options; this.database.Connect(); } --- 134,138 ---- try { ! this.database.Options = this.Options; this.database.Connect(); } --- NEW FILE: PgInfoMessageEventHandler.cs --- /* * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. * * Software distributed under the License is distributed on * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the License for the specific * language governing rights and limitations under the License. * * Copyright (c) 2003, 2005 Carlos Guzman Alvarez * All Rights Reserved. */ using System; namespace PostgreSql.Data.PostgreSqlClient { public delegate void PgInfoMessageEventHandler(object sender, PgInfoMessageEventArgs e); } Index: PgNotificationEventArgs.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgNotificationEventArgs.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgNotificationEventArgs.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgNotificationEventArgs.cs 11 Sep 2005 13:29:16 -0000 1.4 *************** *** 19,23 **** using System; using PostgreSql.Data.Protocol; - using PostgreSql.Data.DbSchema; namespace PostgreSql.Data.PostgreSqlClient --- 19,22 ---- Index: PgDataReader.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/source/PostgreSql/Data/PostgreSqlClient/PgDataReader.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgDataReader.cs 11 Sep 2005 12:12:31 -0000 1.3 --- PgDataReader.cs 11 Sep 2005 13:29:16 -0000 1.4 *************** *** 23,29 **** using System.Reflection; using System.ComponentModel; ! using PostgreSql.Data.Protocol; - using PostgreSql.Data.DbSchema; using PostgreSql.Data.PgTypes; --- 23,28 ---- using System.Reflection; using System.ComponentModel; ! using PostgreSql.Data.Schema; using PostgreSql.Data.Protocol; using PostgreSql.Data.PgTypes; *************** *** 320,347 **** private PgCommand GetColumnInfoCmd() { ! PgDbSchema dbSchema = PgDbSchemaFactory.GetSchema("Columns"); ! ! dbSchema.AddWhereFilter("pg_attribute.attnum = @OidNumber"); ! dbSchema.AddWhereFilter("pg_attribute.attrelid = @OidTable"); ! ! PgCommand cmd = new PgCommand(dbSchema.GetCommandText(null), command.Connection); ! ! cmd.Parameters.Add("@OidNumber", PgDbType.Int4); ! cmd.Parameters.Add("@OidTable", PgDbType.Int4); ! ! return cmd; } private PgCommand GetPrimaryKeyInfoCmd() { ! PgDbSchema dbSchema = PgDbSchemaFactory.GetSchema("PrimaryKeys"); ! ! dbSchema.AddWhereFilter("pg_class.oid = @OidTable"); ! ! PgCommand cmd = new PgCommand(dbSchema.GetCommandText(null), command.Connection); ! ! cmd.Parameters.Add("@OidTable", PgDbType.Int4); ! ! return cmd; } --- 319,328 ---- private PgCommand GetColumnInfoCmd() { ! throw new NotImplementedException(); } private PgCommand GetPrimaryKeyInfoCmd() { ! throw new NotImplementedException(); } |