pdf viewer dll for c# : Add jpg to pdf preview application software tool html winforms azure online postgresql-9.4-A417-part2801

Chapter 7. Queries
7.3.3.
DISTINCT
After the selectlist has been processed, the result table can optionally be subject to the elimination of
duplicate rows. The
DISTINCT
key word is written directly after
SELECT
to specify this:
SELECT DISTINCT
select_list
...
(Instead of
DISTINCT
the key word
ALL
can be used to specify the default behavior of retaining all
rows.)
Obviously, two rows are considereddistinctif theydiffer in atleast one column value. Nullvalues are
considered equal in this comparison.
Alternatively, an arbitrary expression can determine what rows are to be considered distinct:
SELECT DISTINCT ON (
expression
[,
expression
...])
select_list
...
Here
expression
is an arbitrary value expression that is evaluated for all rows. A set of rows for
which all the expressions are equal are considered duplicates, and only the first row of the set is kept
in the output. Note that the “first row” of a set is unpredictable unless the query is sorted on enough
columns to guarantee a unique ordering of the rows arriving at the
DISTINCT
filter. (
DISTINCT ON
processing occurs after
ORDER BY
sorting.)
The
DISTINCT ON
clause is not part of the SQL standard and is sometimes considered bad style
because of the potentially indeterminate nature of its results. With judicious use of
GROUP BY
and
subqueries in
FROM
,this construct can be avoided, but it is often the most convenient alternative.
7.4. Combining Queries
The results of two queries can be combined using the set operations union, intersection, and differ-
ence. The syntax is
query1
UNION [ALL]
query2
query1
INTERSECT [ALL]
query2
query1
EXCEPT [ALL]
query2
query1
and
query2
are queries that can use any of the features discussed up to this point. Set
operations can also be nested and chained, for example
query1
UNION
query2
UNION
query3
which is executed as:
(
query1
UNION
query2
) UNION
query3
UNION
effectivelyappends the result of
query2
to the result of
query1
(althoughthere is no guaran-
tee that this is the order in which the rows are actuallyreturned). Furthermore, it eliminates duplicate
rows from its result, in the same way as
DISTINCT
,unless
UNION ALL
is used.
INTERSECT
returns all rows that are both in the result of
query1
and in the result of
query2
.Dupli-
cate rows are eliminated unless
INTERSECT ALL
is used.
98
Add jpg 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
how to add image to pdf acrobat; add photo pdf
Add jpg 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
how to add a jpeg to a pdf file; adding image to pdf
Chapter 7. Queries
EXCEPT
returns all rows that arein theresult of
query1
but notintheresultof
query2
.(This is some-
times called the difference between two queries.) Again, duplicates are eliminated unless
EXCEPT
ALL
is used.
In order to calculate the union, intersection, or difference of two queries, the two queries must be
“unioncompatible”, which means thatthey returnthe same number of columns andthe corresponding
columns have compatible data types, as described in Section 10.5.
7.5. Sorting Rows
After a query has produced an output table (after the select list has been processed) it can optionally
be sorted. If sorting is not chosen, the rows will be returned in an unspecified order. The actual order
in that case will depend onthe scanand joinplantypes and the order ondisk, but it must not be relied
on. A particular output ordering can only be guaranteed if the sort step is explicitly chosen.
The
ORDER BY
clause specifies the sort order:
SELECT
select_list
FROM
table_expression
ORDER BY
sort_expression1
[ASC | DESC] [NULLS { FIRST | LAST }]
[,
sort_expression2
[ASC | DESC] [NULLS { FIRST | LAST }] ...]
The sort expression(s) can be anyexpression thatwouldbe validinthequery’s select list. Anexample
is:
SELECT a, b FROM table1 ORDER BY a + b, c;
When more than one expression is specified, the later values are used to sort rows that are equal
according to the earlier values. Each expressioncan befollowedby anoptional
ASC
or
DESC
keyword
to set the sort direction to ascending or descending.
ASC
order is the default. Ascending order puts
smaller values first, where“smaller” is definedinterms of the
<
operator. Similarly, descending order
is determined with the
>
operator.
1
The
NULLS FIRST
and
NULLS LAST
options can be used to determine whether nulls appear before
or after non-null values inthe sort ordering. By default, null values sort as if larger than any non-null
value; that is,
NULLS FIRST
is the default for
DESC
order, and
NULLS LAST
otherwise.
Note that the orderingoptions areconsidered independently for eachsort column. For example
ORDER
BY x, y DESC
means
ORDER BY x ASC, y DESC
,which is not the same as
ORDER BY x DESC,
y DESC
.
A
sort_expression
can also be the column label or number of an output column, as in:
SELECT a + b AS sum, c FROM table1 ORDER BY sum;
SELECT a, max(b) FROM table1 GROUP BY a ORDER BY 1;
both of which sort by the first output column. Note that an output column name has to stand alone,
that is, it cannot be used in an expression — for example, this is not correct:
SELECT a + b AS sum, c FROM table1 ORDER BY sum + c;
-- wrong
This restriction is made toreduce ambiguity. There is still ambiguity if an
ORDER BY
item is a simple
name that could match either an output column name or a column from the table expression. The
1. Actually, PostgreSQL uses the default B-tree operator class for the expression’s data type to determine the sort ordering
for
ASC
and
DESC
.Conventionally, data types will be set up so that the
<
and
>
operators correspond to this sort ordering, but
auser-defined data type’sdesigner could choose to do something different.
99
C# powerpoint - Convert PowerPoint to JPEG in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB PowerPoint to JPEG converter library will name the converted JPEG image file Output.jpg. Add references:
how to add image to pdf in acrobat; add an image to a pdf form
C# Word - Convert Word to JPEG in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET Word to JPEG converter library will name the converted JPEG image file Output.jpg. Add references:
add image to pdf file; how to add an image to a pdf file
Chapter 7. Queries
output column is used in such cases. This would only cause confusion if you use
AS
to rename an
output column to match some other table column’s name.
ORDER BY
can be applied to the result of a
UNION
,
INTERSECT
,or
EXCEPT
combination, but in this
case it is only permitted to sort by output column names or numbers, not by expressions.
7.6.
LIMIT
and
OFFSET
LIMIT
and
OFFSET
allow you to retrieve just a portion of the rows that are generated by the rest of
the query:
SELECT
select_list
FROM
table_expression
[ ORDER BY ... ]
[ LIMIT {
number
| ALL } ] [ OFFSET
number
]
If a limit count is given, no more than that many rows will be returned (but possibly less, if the query
itself yields less rows).
LIMIT ALL
is the same as omitting the
LIMIT
clause.
OFFSET
says to skip that many rows before beginning to return rows.
OFFSET 0
is the same as
omitting the
OFFSET
clause, and
LIMIT NULL
is the same as omitting the
LIMIT
clause. If both
OFFSET
and
LIMIT
appear, then
OFFSET
rows are skipped before starting to count the
LIMIT
rows
that are returned.
When using
LIMIT
,it is important to use an
ORDER BY
clause that constrains the result rows into a
uniqueorder. Otherwise you willgetan unpredictable subset of the query’srows. Youmightbeasking
for the tenth through twentieth rows, but tenth through twentieth in what ordering? The ordering is
unknown, unless you specified
ORDER BY
.
The query optimizer takes
LIMIT
into account when generating query plans, so you are very likely
to get different plans (yielding different row orders) depending on what you give for
LIMIT
and
OFFSET
.Thus, using different
LIMIT
/
OFFSET
values to select different subsets of a query result will
give inconsistent results unless you enforce a predictable result ordering with
ORDER BY
.This is not
abug; it is an inherent consequence of the fact that SQL does not promise to deliver the results of a
query in any particular order unless
ORDER BY
is used to constrain the order.
The rows skipped by an
OFFSET
clause still have to be computed inside the server; therefore a large
OFFSET
might be inefficient.
7.7.
VALUES
Lists
VALUES
provides a way to generate a “constant table” that can be used in a query without having to
actually create and populate a table on-disk. The syntax is
VALUES (
expression
[, ...] ) [, ...]
Each parenthesized list of expressions generates a row in the table. The lists must all have the same
number of elements (i.e., the number of columns in the table), and corresponding entries in each
list must have compatible data types. The actual data type assigned to each column of the result is
determinedusing the same rules as for
UNION
(see Section 10.5).
As an example:
100
C# Create PDF Library SDK to convert PDF from other file formats
from multiple image formats such as tiff, jpg, png, gif a PDF document in C#.NET using this PDF document creating toolkit, if you need to add some text
add image pdf; how to add a jpeg to a pdf
C# PDF remove image library: remove, delete images from PDF in C#.
Support various formats image deletion, such as Jpeg or Jpg, Png, Gif, Bmp, Tiff and other bitmap Remove Image from PDF Page Using C#. Add necessary references:
add image to pdf online; adding an image to a pdf in acrobat
Chapter 7. Queries
VALUES (1, ’one’), (2, ’two’), (3, ’three’);
will return a table of two columns and three rows. It’s effectively equivalent to:
SELECT 1 AS column1, ’one’ AS column2
UNION ALL
SELECT 2, ’two’
UNION ALL
SELECT 3, ’three’;
By default, PostgreSQL assigns the names
column1
,
column2
,etc. to the columns of a
VALUES
table. The column names are not specified by the SQL standard and different database systems do it
differently, so it’s usually better to override the default names with a table alias list, like this:
=> SELECT
*
FROM (VALUES (1, ’one’), (2, ’two’), (3, ’three’)) AS t (num,letter);
num | letter
-----+--------
1 | one
2 | two
3 | three
(3 rows)
Syntactically,
VALUES
followed by expression lists is treated as equivalent to:
SELECT
select_list
FROM
table_expression
and can appear anywhere a
SELECT
can. For example, you can use it as part of a
UNION
,or attach a
sort_specification
(
ORDER BY
,
LIMIT
,and/or
OFFSET
)to it.
VALUES
is most commonly used
as the data source in an
INSERT
command, and next most commonlyas a subquery.
For more information see VALUES.
7.8.
WITH
Queries (Common Table Expressions)
WITH
provides a way to write auxiliary statements for use in a larger query. These statements, which
are often referred to as CommonTable Expressions or CTEs, canbe thought of as defining temporary
tables that exist just for one query. Each auxiliary statement in a
WITH
clause can be a
SELECT
,
INSERT
,
UPDATE
,or
DELETE
;and the
WITH
clause itself is attached to a primary statement that can
also be a
SELECT
,
INSERT
,
UPDATE
,or
DELETE
.
7.8.1.
SELECT
in
WITH
The basic value of
SELECT
in
WITH
is to break down complicated queries into simpler parts. An
example is:
WITH regional_sales AS (
SELECT region, SUM(amount) AS total_sales
FROM orders
GROUP BY region
), top_regions AS (
SELECT region
FROM regional_sales
WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
101
VB.NET PDF remove image library: remove, delete images from PDF in
Support various formats image deletion in Visual Studio, such as Jpeg or Jpg, Png, Gif, Bmp, Tiff VB.NET: Remove Image from PDF Page. Add necessary references:
add jpg to pdf file; adding image to pdf in preview
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
Supported image formats, including Jpeg or Jpg, Png, Gif, Bmp, Tiff and other bitmap VB.NET DLLs: Copy, Paste, Cut Image in PDF Page. Add necessary references:
add jpg signature to pdf; how to add image to pdf form
Chapter 7. Queries
)
SELECT region,
product,
SUM(quantity) AS product_units,
SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;
which displays per-product sales totals in only the top sales regions. The
WITH
clause defines
two auxiliary statements named
regional_sales
and
top_regions
, where the output of
regional_sales
is used in
top_regions
and the output of
top_regions
is used in the primary
SELECT
query. This example could have been written without
WITH
, but we’d have needed two
levels of nested sub-
SELECT
s. It’s a bit easier to follow this way.
The optional
RECURSIVE
modifier changes
WITH
from a mere syntactic convenience into a feature
that accomplishes things not otherwise possible in standard SQL. Using
RECURSIVE
,a
WITH
query
can refer to its own output. A very simple example is this query to sum the integers from 1 through
100:
WITH RECURSIVE t(n) AS (
VALUES (1)
UNION ALL
SELECT n+1 FROM t WHERE n < 100
)
SELECT sum(n) FROM t;
The general form of a recursive
WITH
query is always a non-recursive term, then
UNION
(or
UNION
ALL
), then a recursive term, where only the recursive term can contain a reference to the query’s own
output. Such a query is executed as follows:
Recursive Query Evaluation
1. Evaluate the non-recursive term. For
UNION
(but not
UNION ALL
), discard duplicate rows. In-
clude all remaining rows in the result of the recursive query, and also place them in a temporary
working table.
2. So long as the working table is not empty, repeat these steps:
a. Evaluate the recursive term, substituting the current contents of the working table for
the recursive self-reference. For
UNION
(but not
UNION ALL
), discard duplicate rows
and rows that duplicate anyprevious resultrow. Include allremainingrows inthe result
of the recursive query, and also place them in a temporaryintermediate table.
b. Replace the contents of the working table with the contents of the intermediate table,
then empty the intermediate table.
Note: Strictly speaking, this process is iteration not recursion, but
RECURSIVE
is the terminology
chosen by theSQL standards committee.
In the example above, the working table has just a single row in each step, and it takes on the values
from 1 through 100 in successive steps. In the 100th step, there is no output because of the
WHERE
clause, and so the query terminates.
102
C# Word - Insert Image to Word Page in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET Add references: page = docx.GetPage(0); REImage image = new REImage(@"C:\logo2.jpg"); page.AddImage
add jpeg to pdf; add jpg to pdf acrobat
C# PowerPoint - Insert Image to PowerPoint File Page in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Add image to PowerPoint file page using C# GetPage(0); REImage image = new REImage(@"C:\logo2.jpg"); page.AddImage
how to add an image to a pdf in preview; adding a png to a pdf
Chapter 7. Queries
Recursive queries are typicallyusedtodeal withhierarchical or tree-structured data. Ausefulexample
is this query to find all the direct and indirect sub-parts of a product, given only a table that shows
immediate inclusions:
WITH RECURSIVE included_parts(sub_part, part, quantity) AS (
SELECT sub_part, part, quantity FROM parts WHERE part = ’our_product’
UNION ALL
SELECT p.sub_part, p.part, p.quantity
FROM included_parts pr, parts p
WHERE p.part = pr.sub_part
)
SELECT sub_part, SUM(quantity) as total_quantity
FROM included_parts
GROUP BY sub_part
When workingwith recursive queries it is important tobe sure that the recursive part of the querywill
eventually return no tuples, or else the query will loop indefinitely. Sometimes, using
UNION
instead
of
UNION ALL
can accomplishthis by discarding rows that duplicate previous output rows. However,
often a cycle does not involve output rows thatare completely duplicate: it maybe necessary to check
just one or a few fields to see if the same point has been reached before. The standard method for
handling such situations is to compute an array of the already-visited values. For example, consider
the following query that searches a table
graph
using a
link
field:
WITH RECURSIVE search_graph(id, link, data, depth) AS (
SELECT g.id, g.link, g.data, 1
FROM graph g
UNION ALL
SELECT g.id, g.link, g.data, sg.depth + 1
FROM graph g, search_graph sg
WHERE g.id = sg.link
)
SELECT
*
FROM search_graph;
This query will loop if the
link
relationships contain cycles. Because we require a “depth” output,
just changing
UNION ALL
to
UNION
would not eliminate the looping. Instead we need to recognize
whether we have reached the same row again while following a particular path of links. We add two
columns
path
and
cycle
to the loop-prone query:
WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
SELECT g.id, g.link, g.data, 1,
ARRAY[g.id],
false
FROM graph g
UNION ALL
SELECT g.id, g.link, g.data, sg.depth + 1,
path || g.id,
g.id = ANY(path)
FROM graph g, search_graph sg
WHERE g.id = sg.link AND NOT cycle
)
SELECT
*
FROM search_graph;
Aside from preventing cycles, the arrayvalueis oftenusefulinits ownrightas representingthe“path”
taken to reach any particular row.
103
Chapter 7. Queries
In the general case where more than one field needs to be checked to recognize a cycle, use an array
of rows. For example, if we needed to compare fields
f1
and
f2
:
WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
SELECT g.id, g.link, g.data, 1,
ARRAY[ROW(g.f1, g.f2)],
false
FROM graph g
UNION ALL
SELECT g.id, g.link, g.data, sg.depth + 1,
path || ROW(g.f1, g.f2),
ROW(g.f1, g.f2) = ANY(path)
FROM graph g, search_graph sg
WHERE g.id = sg.link AND NOT cycle
)
SELECT
*
FROM search_graph;
Tip: Omit the
ROW()
syntax in the common case where only one field needs to be checked to
recognize a cycle. This allows a simple array rather than a composite-type array to be used,
gaining efficiency.
Tip: The recursive query evaluation algorithm produces its output in breadth-first search order.
You can display the results in depth-first search order by making the outer query
ORDER BY
a
“path” column constructed in this way.
Ahelpful trick for testing queries when you are not certain if they might loop is to place a
LIMIT
in
the parent query. For example, this query would loop forever without the
LIMIT
:
WITH RECURSIVE t(n) AS (
SELECT 1
UNION ALL
SELECT n+1 FROM t
)
SELECT n FROM t LIMIT 100;
This works because PostgreSQL’s implementation evaluates only as many rows of a
WITH
query as
are actually fetched by the parent query. Using this trick in production is not recommended, because
other systems might work differently. Also, it usuallywon’t workif youmake the outer query sort the
recursive query’s results or join them to some other table, because in such cases the outer query will
usually try to fetch all of the
WITH
query’s output anyway.
Auseful property of
WITH
queries is that they are evaluated only once per execution of the parent
query, even if they are referred to more than once by the parent query or sibling
WITH
queries. Thus,
expensive calculations that are needed in multiple places can be placed within a
WITH
query to avoid
redundant work. Another possible application is to prevent unwanted multiple evaluations of func-
tions with side-effects. However, the other side of this coin is that the optimizer is less able to push
restrictions from the parent query down into a
WITH
query than an ordinary sub-query. The
WITH
query will generally be evaluated as written, without suppression of rows that the parent query might
discard afterwards. (But, as mentioned above, evaluation might stop early if the reference(s) to the
query demand only a limitednumber of rows.)
104
Chapter 7. Queries
The examples aboveonly show
WITH
being used with
SELECT
,butit canbe attached inthe same way
to
INSERT
,
UPDATE
,or
DELETE
.In each case it effectively provides temporary table(s) that can be
referred to in the main command.
7.8.2. Data-Modifying Statements in
WITH
You can use data-modifying statements (
INSERT
,
UPDATE
,or
DELETE
)in
WITH
.This allows you to
perform several different operations in the same query. An example is:
WITH moved_rows AS (
DELETE FROM products
WHERE
"date" >= ’2010-10-01’ AND
"date" < ’2010-11-01’
RETURNING
*
)
INSERT INTO products_log
SELECT
*
FROM moved_rows;
This query effectively moves rows from
products
to
products_log
.The
DELETE
in
WITH
deletes
the specified rows from
products
,returning their contents by means of its
RETURNING
clause; and
then the primary query reads that output andinserts it into
products_log
.
Afine point of the above example is that the
WITH
clause is attached to the
INSERT
,not the sub-
SELECT
within the
INSERT
.This is necessary because data-modifying statements are only allowed
in
WITH
clauses that are attached to the top-level statement. However, normal
WITH
visibility rules
apply, so it is possible to refer to the
WITH
statement’s output from the sub-
SELECT
.
Data-modifying statements in
WITH
usually have
RETURNING
clauses, as seen in the example above.
It is the output of the
RETURNING
clause, not the target table of the data-modifying statement, that
forms the temporarytable thatcan be referred to by therestof the query. If a data-modifyingstatement
in
WITH
lacks a
RETURNING
clause, then it forms no temporary table and cannot be referred to in the
rest of the query. Such a statement will be executed nonetheless. A not-particularly-useful example
is:
WITH t AS (
DELETE FROM foo
)
DELETE FROM bar;
This example would remove all rows from tables
foo
and
bar
.The number of affectedrows reported
to the client would only include rows removed from
bar
.
Recursive self-references in data-modifying statements are not allowed. In some cases it is possible
to work around this limitation by referring to the output of a recursive
WITH
,for example:
WITH RECURSIVE included_parts(sub_part, part) AS (
SELECT sub_part, part FROM parts WHERE part = ’our_product’
UNION ALL
SELECT p.sub_part, p.part
FROM included_parts pr, parts p
WHERE p.part = pr.sub_part
)
DELETE FROM parts
WHERE part IN (SELECT part FROM included_parts);
105
Chapter 7. Queries
This query would remove all direct and indirect subparts of a product.
Data-modifying statements in
WITH
are executed exactly once, and always to completion, indepen-
dently of whether the primary query reads all (or indeed any) of their output. Notice that this is
different from the rule for
SELECT
in
WITH
:as stated in the previous section, execution of a
SELECT
is carried only as far as the primary query demands its output.
The sub-statements in
WITH
are executed concurrently with each other and with the main query.
Therefore, when using data-modifying statements in
WITH
,the order in which the specified updates
actuallyhappen is unpredictable. All the statements are executed withthe samesnapshot (see Chapter
13), so they cannot “see” one another’s effects on the target tables. This alleviates the effects of the
unpredictability of the actual order of row updates, and means that
RETURNING
data is the only way
to communicate changes between different
WITH
sub-statements and the main query. An example of
this is that in
WITH t AS (
UPDATE products SET price = price
*
1.05
RETURNING
*
)
SELECT
*
FROM products;
the outer
SELECT
would return the original prices before the action of the
UPDATE
,while in
WITH t AS (
UPDATE products SET price = price
*
1.05
RETURNING
*
)
SELECT
*
FROM t;
the outer
SELECT
would return the updated data.
Trying to update the same row twice in a single statement is not supported. Only one of the modi-
fications takes place, but it is not easy (and sometimes not possible) to reliably predict which one.
This also applies to deleting a row that was already updated in the same statement: only the update
is performed. Therefore you should generally avoid trying to modify a single row twice in a single
statement. Inparticular avoid writing
WITH
sub-statements that could affect thesame rows changed by
the main statement or a siblingsub-statement. The effects of such a statement will not be predictable.
At present, any table used as the target of a data-modifying statement in
WITH
must not have a condi-
tional rule, nor an
ALSO
rule, nor an
INSTEAD
rule that expands to multiple statements.
106
Chapter 8. Data Types
PostgreSQL has a rich set of native data types available to users. Users can add new types to Post-
greSQL using the CREATE TYPE command.
Table 8-1 shows all the built-in general-purpose data types. Most of the alternative names listed in
the “Aliases” column are the names used internally by PostgreSQL for historical reasons. Inaddition,
some internally used or deprecated types are available, but are not listed here.
Table 8-1. Data Types
Name
Aliases
Description
bigint
int8
signed eight-byte integer
bigserial
serial8
autoincrementing eight-byte
integer
bit [ (
n
) ]
fixed-length bit string
bit varying [ (
n
) ]
varbit
variable-length bit string
boolean
bool
logical Boolean (true/false)
box
rectangular box on a plane
bytea
binary data (“byte array”)
character [ (
n
) ]
char [ (
n
) ]
fixed-length character string
character varying [ (
n
)
]
varchar [ (
n
) ]
variable-length character string
cidr
IPv4 or IPv6 network address
circle
circle on a plane
date
calendar date (year, month,
day)
double precision
float8
double precision floating-point
number (8 bytes)
inet
IPv4 or IPv6 host address
integer
int
,
int4
signed four-byte integer
interval [
fields
] [
(
p
) ]
time span
json
textual JSONdata
jsonb
binary JSON data, decomposed
line
infinite line on a plane
lseg
line segment on a plane
macaddr
MAC (Media Access Control)
address
money
currency amount
numeric [ (
p
,
s
) ]
decimal [ (
p
,
s
) ]
exact numeric of selectable
precision
path
geometric path on a plane
pg_lsn
PostgreSQL Log Sequence
Number
point
geometric point on a plane
107
Documents you may be interested
Documents you may be interested