pdf viewer in asp net c# : Add png to pdf preview Library software component asp.net windows winforms mvc postgresql-9.4-A472-part2997

Chapter 30. Regression Tests
30.1.4. Locale and Encoding
By default, tests using a temporary installation use the locale defined in the current environment
and the corresponding database encoding as determined by
initdb
.It can be useful to test different
locales by setting the appropriate environment variables, for example:
make check LANG=C
make check LC_COLLATE=en_US.utf8 LC_CTYPE=fr_CA.utf8
For implementation reasons, setting
LC_ALL
does not work for this purpose; all the other locale-
related environment variables do work.
When testing against an existing installation, the locale is determined by the existing database cluster
and cannot be set separately for the test run.
You can also choose the database encoding explicitly by setting the variable
ENCODING
,for example:
make check LANG=C ENCODING=EUC_JP
Setting the database encoding this way typically only makes sense if the locale is C; otherwise the
encoding is chosen automaticallyfrom the locale, and specifyingan encoding that does notmatch the
locale will result in an error.
The databaseencoding can be setfor tests againsteither atemporary or an existinginstallation, though
in the latter case it must be compatible with the installation’s locale.
30.1.5. Extra Tests
The core regression test suite contains a few test files that are not run by default, because they might
be platform-dependent or take a very long time to run. You can run these or other extra test files by
setting the variable
EXTRA_TESTS
.For example, to run the
numeric_big
test:
make check EXTRA_TESTS=numeric_big
To run the collation tests:
make check EXTRA_TESTS=collate.linux.utf8 LANG=en_US.utf8
The
collate.linux.utf8
test works only on Linux/glibc platforms, and only when run in a
database that uses UTF-8 encoding.
30.1.6. Testing Hot Standby
The source distribution also contains regression tests for the static behavior of Hot Standby. These
tests require a running primary server and a running standby server that is accepting new WAL
changes from the primary(usingeither file-basedlogshippingor streaming replication). Those servers
are not automatically created for you, nor is replication setup documented here. Please check the var-
ious sections of the documentation devoted to the required commands and related issues.
To run the Hot Standby tests, first create a database called
regression
on the primary:
psql -h primary -c "CREATE DATABASE regression"
Next, run the preparatory script
src/test/regress/sql/hs_primary_setup.sql
on the pri-
mary in the regression database, for example:
648
Add png to pdf preview - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add image field to pdf form; add photo to pdf form
Add png to pdf preview - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
adding images to pdf; adding images to pdf files
Chapter 30. Regression Tests
psql -h primary -f src/test/regress/sql/hs_primary_setup.sql regression
Allow these changes to propagate to the standby.
Now arrange for the default database connection to be to the standby server under test (for example,
by settingthe
PGHOST
and
PGPORT
environment variables). Finally, run
make standbycheck
in the
regression directory:
cd src/test/regress
make standbycheck
Some extreme behaviors can also be generated on the primary using the script
src/test/regress/sql/hs_primary_extremes.sql
to allow the behavior of the standby to
be tested.
30.2. Test Evaluation
Some properlyinstalledandfullyfunctional PostgreSQL installations can“fail”someof theseregres-
sion tests due to platform-specific artifacts such as varying floating-point representation and message
wording. The tests are currently evaluated using a simple
diff
comparison against the outputs gen-
erated on a reference system, so the results are sensitive to small system differences. When a test is
reported as “failed”, always examine the differences between expected and actual results; you might
find thatthe differences are notsignificant. Nonetheless, we still strive to maintain accurate reference
files across all supported platforms, so it can be expected that all tests pass.
The actual outputs of the regression tests are in files in the
src/test/regress/results
direc-
tory. The test script uses
diff
to compare each output file against the reference outputs stored in
the
src/test/regress/expected
directory. Any differences are saved for your inspection in
src/test/regress/regression.diffs
. (When running a test suite other than the core tests,
these files of course appear in the relevant subdirectory, not
src/test/regress
.)
If you don’t like the
diff
options that are used by default, set the environment variable
PG_REGRESS_DIFF_OPTS
, for instance
PG_REGRESS_DIFF_OPTS=’-u’
. (Or you can run
diff
yourself, if you prefer.)
If for some reason a particular platform generates a “failure” for a given test, but inspection of the
output convinces you that the result is valid, you can add a new comparison file to silence the failure
report in future test runs. See Section 30.3 for details.
30.2.1. Error Message Differences
Some of the regression tests involve intentional invalid input values. Error messages can come from
either the PostgreSQL code or from the host platform system routines. In the latter case, the messages
can vary between platforms, but should reflect similar information. These differences in messages
will result in a “failed” regression test that can be validated by inspection.
30.2.2. Locale Differences
If yourun the tests against aserver that was initializedwith a collation-order locale other than C, then
there might be differences due to sort order and subsequent failures. The regression test suite is set
649
How to C#: Preview Document Content Using XDoc.Word
With the SDK, you can preview the document content according to the preview thumbnail by the ways as following. C# DLLs for Word File Preview. Add references:
add picture to pdf form; how to add an image to a pdf in preview
How to C#: Preview Document Content Using XDoc.PowerPoint
C# DLLs: Preview PowerPoint Document. Add necessary XDoc.PowerPoint DLL libraries into your created C# application as references. RasterEdge.Imaging.Basic.dll.
how to add a jpg to a pdf; how to add image to pdf
Chapter 30. Regression Tests
up to handle this problem by providing alternate result files that together are known to handle a large
number of locales.
To run the tests in a differentlocale when using the temporary-installation method, pass the appropri-
ate locale-related environment variables on the
make
command line, for example:
make check LANG=de_DE.utf8
(Theregressiontestdriver unsets
LC_ALL
,so it does notworktochoose thelocale usingthatvariable.)
To use no locale, either unset all locale-related environment variables (or set them to
C
)or use the
following special invocation:
make check NO_LOCALE=1
When running the tests against an existing installation, the locale setup is determined by the exist-
ing installation. To change it, initialize the database cluster with a different locale by passing the
appropriate options to
initdb
.
In general, it is advisable to try to run the regression tests in the locale setup that is wanted for
production use, as this will exercise the locale- and encoding-related code portions that will actually
be used in production. Depending on the operating system environment, you might get failures, but
then you will at least know what locale-specific behaviors toexpect when running real applications.
30.2.3. Date and Time Differences
Most of the date and time results are dependent on the time zone environment. The reference files
are generated for time zone
PST8PDT
(Berkeley, California), and there will be apparent failures if the
tests are notrun withthattime zone setting. Theregression testdriver sets environment variable
PGTZ
to
PST8PDT
,which normally ensures proper results.
30.2.4. Floating-Point Differences
Some of the tests involve computing 64-bitfloating-point numbers (
double precision
)from table
columns. Differences in results involving mathematical functions of
double precision
columns
have been observed. The
float8
and
geometry
tests are particularly prone to small differences
across platforms, or even with different compiler optimization settings. Human eyeball comparison is
needed to determine the real significance of these differences which are usually 10 places tothe right
of the decimal point.
Some systems display minus zero as
-0
,while others just show
0
.
Some systems signal errors from
pow()
and
exp()
differently from the mechanism expected by the
current PostgreSQL code.
30.2.5. Row Ordering Differences
You might see differences inwhich the same rows are output ina different order than what appears in
the expected file. In most cases this is not, strictly speaking, a bug. Most of the regression test scripts
are not so pedantic as to use an
ORDER BY
for every single
SELECT
,and so their result row orderings
are not well-defined accordingto the SQL specification. In practice, since we are looking at the same
queries being executed on the same data bythe same software, weusuallyget the same resultordering
on all platforms, so the lack of
ORDER BY
is not a problem. Some queries do exhibit cross-platform
650
C# Word - Render Word to Other Images
Besides raster image Jpeg, images forms like Png, Bmp, Gif, .NET Graphics, and REImage (an intermediate class) are also supported. Add references:
add png to pdf preview; how to add image to pdf form
C# powerpoint - Render PowerPoint to Other Images
Besides raster image Jpeg, images forms like Png, Bmp, Gif, .NET Graphics, and Add necessary XDoc.PowerPoint DLL libraries into your created C# application as
how to add a jpeg to a pdf; how to add a picture to a pdf document
Chapter 30. Regression Tests
ordering differences, however. When testing against an already-installed server, ordering differences
can also be caused by non-C locale settings or non-default parameter settings, such as custom values
of
work_mem
or the planner cost parameters.
Therefore, if you see an ordering difference, it’s not something to worry about, unless the query does
have an
ORDER BY
that your result is violating. However, please report it anyway, so that we can add
an
ORDER BY
to that particular query to eliminate the bogus “failure” in future releases.
You might wonder why we don’t order all the regression test queries explicitly to get rid of this issue
once and for all. The reason is that that would make the regression tests less useful, not more, since
they’d tend to exercise query plan types that produce ordered results to the exclusion of those that
don’t.
30.2.6. Insufficient Stack Depth
If the
errors
testresultsina server crashatthe
select infinite_recurse()
command, itmeans
that the platform’s limit on process stack size is smaller than the max_stack_depth parameter indi-
cates. This can be fixed by running the server under a higher stack size limit (4MB is recommended
with the default value of
max_stack_depth
). If you are unable to do that, analternative is to reduce
the value of
max_stack_depth
.
On platforms supporting
getrlimit()
, the server should automatically choose a safe value of
max_stack_depth
;so unless you’ve manually overridden this setting, a failure of this kind is a
reportable bug.
30.2.7. The “random” Test
The
random
test script is intended to produce random results. In very rare cases, this causes that
regression test to fail. Typing:
diff results/random.out expected/random.out
should produce onlyone or a few lines of differences. Youneednotworry unless the random testfails
repeatedly.
30.2.8. Configuration Parameters
When running the tests against an existing installation, some non-default parameter settings
could cause the tests to fail. For example, changing parameters such as
enable_seqscan
or
enable_indexscan
could cause plan changes that would affect the results of tests that use
EXPLAIN
.
30.3. Variant Comparison Files
Since some of the tests inherently produce environment-dependent results, we have provided ways to
specify alternate “expected” result files. Each regression test can have several comparison files show-
ing possible results on different platforms. There are two independent mechanisms for determining
which comparisonfile is used for each test.
651
C# Create PDF Library SDK to convert PDF from other file formats
Besides, using this PDF document metadata adding control, you can add some additional information to generated PDF file. Create PDF from Jpeg, png, images.
adding an image to a pdf file; add photo to pdf file
C# PDF: How to Create PDF Document Viewer in C#.NET with
The PDF document manipulating add-on from RasterEdge DocImage SDK for .NET is Support thumbnail image and outline preview for quick PDF document page
add a picture to a pdf document; adding an image to a pdf
Chapter 30. Regression Tests
The first mechanism allows comparisonfiles to be selected for specific platforms. There is a mapping
file,
src/test/regress/resultmap
,that defines which comparison file to use for each platform.
To eliminate bogus test “failures” for a particular platform, you first choose or make a variant result
file, and then add a line to the
resultmap
file.
Each line in the mapping file is of the form
testname:output:platformpattern=comparisonfilename
The test name is just the name of the particular regression test module. The output value indicates
which outputfile tocheck. For thestandardregressiontests, this is always
out
.The value corresponds
to the file extension of the output file. The platform pattern is a pattern in the style of the Unix tool
expr
(that is, a regular expression with an implicit
^
anchor at the start). It is matched against the
platform name as printed by
config.guess
.The comparison file name is the base name of the
substitute result comparison file.
For example:some systems interpret verysmall floating-point values as zero, rather than reporting an
underflow error. This causes a fewdifferences in the
float8
regression test. Therefore, we provide a
variant comparisonfile,
float8-small-is-zero.out
,whichincludes the results to be expected on
these systems. Tosilence the bogus “failure” message on OpenBSD platforms,
resultmap
includes:
float8:out:i.86-.
*
-openbsd=float8-small-is-zero.out
which willtrigger onany machine wherethe output of
config.guess
matches
i.86-.
*
-openbsd
.
Other lines in
resultmap
selectthevariantcomparisonfile for other platforms whereit’s appropriate.
The second selection mechanism for variant comparison files is much more automatic: it simply
uses the “best match” among several supplied comparison files. The regression test driver script
considers both the standard comparison file for a test,
testname
.out
, and variant files named
testname
_
digit
.out
(where the
digit
is any single digit
0
-
9
). If any such file is an exact match,
the test is considered to pass; otherwise, the one that generates the shortest diff is used to create the
failure report. (If
resultmap
includes an entry for the particular test, then the base
testname
is the
substitute name given in
resultmap
.)
For example, for the
char
test, the comparison file
char.out
contains results that are expected in
the
C
and
POSIX
locales, while the file
char_1.out
contains results sorted as they appear in many
other locales.
The best-match mechanism was devised to cope with locale-dependent results, but it can be used
in any situation where the test results cannot be predicted easily from the platform name alone. A
limitation of this mechanism is that the test driver cannot tell which variant is actually “correct” for
the current environment; it will just pick the variant that seems to work best. Therefore it is safest
to use this mechanism only for variant results that you are willing to consider equally valid in all
contexts.
30.4. TAP Tests
The client program tests under
src/bin
use the Perl TAP tools and are run by
prove
.You can pass
command-line options to
prove
by setting the
make
variable
PROVE_FLAGS
,for example:
make -C src/bin check PROVE_FLAGS=’--reverse’
The default is
--verbose
.See the manual page of
prove
for more information.
652
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview component enables compressing and
add jpg to pdf online; add image to pdf file acrobat
C# PDF Page Insert Library: insert pages into PDF file in C#.net
from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp, Jpeg, Png, Gif, and DLLs for Inserting Page to PDF Document. Add necessary references
attach image to pdf form; add photo to pdf for
Chapter 30. Regression Tests
The tests written in Perl require the Perl module
IPC::Run
.This module is available from CPAN or
an operating system package.
30.5. Test Coverage Examination
The PostgreSQL source code can be compiled with coverage testing instrumentation, so that it be-
comes possible to examine which parts of the code are covered by the regression tests or any other
test suite that is run withthecode. This is currently supportedwhen compiling withGCC andrequires
the
gcov
and
lcov
programs.
Atypical workflow would look like this:
./configure --enable-coverage ... OTHER OPTIONS ...
make
make check # or other test suite
make coverage-html
Then point your HTML browser to
coverage/index.html
.The
make
commands also work in
subdirectories.
To reset the execution counts between test runs, run:
make coverage-clean
653
IV. Client Interfaces
This part describes the client programming interfaces distributed with PostgreSQL. Each of these
chapters can be read independently. Note that there are many other programming interfaces for client
programs thatare distributedseparately andcontaintheir owndocumentation(Appendix H lists some
of the more popular ones). Readers of this part should be familiar with using SQL commands to
manipulateand query the database (see Part II) and of course withthe programming language that the
interface uses.
Chapter 31. libpq - C Library
libpq is the C application programmer’s interface to PostgreSQL. libpq is a set of library functions
thatallow client programs to pass queries to the PostgreSQL backendserver and to receive the results
of these queries.
libpq is also the underlying engine for several other PostgreSQL application interfaces, including
those written for C++, Perl, Python, Tcl and ECPG. So some aspects of libpq’s behavior will be
important to you if you use one of those packages. In particular, Section 31.14, Section 31.15 and
Section 31.18 describe behavior that is visible to the user of any application that uses libpq.
Some short programs areincludedat the endof this chapter (Section 31.21) toshow howto write pro-
grams that use libpq. There are also several complete examples of libpq applications in the directory
src/test/examples
in the source code distribution.
Client programs thatuse libpq must include the header file
libpq-fe.h
and must link withthe libpq
library.
31.1. Database Connection Control Functions
The following functions deal with making a connection to a PostgreSQL backend server. An appli-
cation program can have several backend connections open at one time. (One reason to do that is to
access more than one database.) Each connection is represented by a
PGconn
object, which is ob-
tained from the function
PQconnectdb
,
PQconnectdbParams
,or
PQsetdbLogin
.Note that these
functions will always return a non-null object pointer, unless perhaps there is too little memory even
to allocate the
PGconn
object. The
PQstatus
function should be called to check the return value for
asuccessful connection before queries are sent via the connection object.
Warning
On Unix, forking a process with open libpq connections can lead to unpre-
dictable results because the parent and child processes share the same sock-
ets and operating system resources. For this reason, such usage is not recom-
mended, though doing an
exec
from thechild process toload anew executable
is safe.
Note: On Windows, there is a way to improve performance if a single database connection is
repeatedly started and shutdown. Internally, libpq calls
WSAStartup()
and
WSACleanup()
for
connection startup and shutdown, respectively.
WSAStartup()
increments an internal Windows
library reference count which is decremented by
WSACleanup()
.Whenthe referencecount is just
one, calling
WSACleanup()
frees all resources and all DLLs are unloaded. This is an expensive
operation. To avoid this, an application can manually call
WSAStartup()
so resources will not be
freed when the last database connection is closed.
PQconnectdbParams
Makes a new connection to the database server.
PGconn
*
PQconnectdbParams(const char
*
const
*
keywords,
const char
*
const
*
values,
int expand_dbname);
656
Chapter 31. libpq - C Library
This function opens a new database connection using the parameters taken from two
NULL
-
terminated arrays. The first,
keywords
,is defined as an array of strings, each one being a key
word. Thesecond,
values
,givesthevaluefor each keyword. Unlike
PQsetdbLogin
below, the
parameter set can be extended without changing the function signature, so use of this function
(or its nonblocking analogs
PQconnectStartParams
and
PQconnectPoll
)is preferred for
new application programming.
The currently recognized parameter key words are listed in Section 31.1.2.
When
expand_dbname
is non-zero, the
dbname
key word value is allowed to be recognized as
aconnection string. Only the first occurrence of
dbname
is expanded this way, any subsequent
dbname
value is processed as plain database name. More details on the possible connection
string formats appear in Section 31.1.1.
The passedarrays canbe emptyto use all default parameters, or cancontain one or more param-
eter settings. Theyshould be matched in length. Processing willstop at the first
NULL
element in
the
keywords
array.
If any parameter is
NULL
or an emptry string, the corresponding environment variable (see Sec-
tion 31.14) is checked. If the environment variable is not set either, then the indicated built-in
defaults are used.
In general key words are processed from the beginningof these arrays in index order. The effect
of this is that when key words are repeated, the last processed value is retained. Therefore,
through careful placement of the
dbname
key word, it is possible to determine what may be
overridden by a
conninfo
string, and what may not.
PQconnectdb
Makes a new connection to the database server.
PGconn
*
PQconnectdb(const char
*
conninfo);
This function opens a new database connection using the parameters taken from the string
conninfo
.
The passed string can be empty to use all default parameters, or it can contain one or more
parameter settings separated by whitespace, or it can contain a URI. See Section 31.1.1 for
details.
PQsetdbLogin
Makes a new connection to the database server.
PGconn
*
PQsetdbLogin(const char
*
pghost,
const char
*
pgport,
const char
*
pgoptions,
const char
*
pgtty,
const char
*
dbName,
const char
*
login,
const char
*
pwd);
This is the predecessor of
PQconnectdb
with a fixed set of parameters. It has the same func-
tionalityexcept that the missingparameters will always take on defaultvalues. Write
NULL
or an
emptystring for any one of the fixed parameters that is to be defaulted.
If the
dbName
contains an
=
sign or has a validconnection URI prefix, it is taken as a
conninfo
string in exactly the same way as if it had been passed to
PQconnectdb
,and the remaining
parameters are then applied as specified for
PQconnectdbParams
.
657
Documents you may be interested
Documents you may be interested