Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
211ed366
Commit
211ed366
authored
25 years ago
by
Jan Wieck
Browse files
Options
Downloads
Patches
Plain Diff
Some minor corrections to the LZ compression. In fact I wanted to
HAVE the required OID's first. Jan
parent
79c3b71c
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/backend/utils/adt/lztext.c
+15
-10
15 additions, 10 deletions
src/backend/utils/adt/lztext.c
src/backend/utils/adt/pg_lzcompress.c
+5
-1
5 additions, 1 deletion
src/backend/utils/adt/pg_lzcompress.c
src/include/utils/pg_lzcompress.h
+29
-2
29 additions, 2 deletions
src/include/utils/pg_lzcompress.h
with
49 additions
and
13 deletions
src/backend/utils/adt/lztext.c
+
15
−
10
View file @
211ed366
/* ----------
* lztext.c -
*
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/lztext.c,v 1.
1
1999/11/17 2
1:21:50
wieck Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/lztext.c,v 1.
2
1999/11/17 2
2:18:45
wieck Exp $
*
* Text type with internal LZ compressed representation. Uses the
* standard PostgreSQL compression method.
*
* This code requires that the LZ compressor found in pg_lzcompress
* codes a usable VARSIZE word at the beginning of the output buffer.
* ----------
*/
...
...
@@ -42,7 +45,7 @@ lztextin(char *str)
return
NULL
;
/* ----------
* Determine input size and
eventually tuple
size
* Determine input size and
maximum output Datum
size
* ----------
*/
rawsize
=
strlen
(
str
);
...
...
@@ -56,8 +59,9 @@ lztextin(char *str)
pglz_compress
(
str
,
rawsize
,
tmp
,
NULL
);
/* ----------
* If we miss less than x% bytes at the end of the temp value,
* so be it. Therefore we save a memcpy().
* If we miss less than 25% bytes at the end of the temp value,
* so be it. Therefore we save a palloc()/memcpy()/pfree()
* sequence.
* ----------
*/
if
(
tmp_size
-
tmp
->
varsize
<
256
||
...
...
@@ -141,7 +145,7 @@ lztextlen(lztext *lz)
* without multibyte support, it's the remembered rawsize
* ----------
*/
return
lz
->
rawsize
;
return
PGLZ_RAW_SIZE
(
lz
)
;
}
...
...
@@ -166,7 +170,7 @@ lztextoctetlen(lztext *lz)
* Return the varsize minus the VARSIZE field itself.
* ----------
*/
return
lz
->
varsize
-
sizeof
(
int32
)
;
return
VARSIZE
(
lz
)
-
VARHDRSZ
;
}
...
...
@@ -208,8 +212,9 @@ text_lztext(text *txt)
pglz_compress
(
str
,
rawsize
,
tmp
,
NULL
);
/* ----------
* If we miss less than x% bytes at the end of the temp value,
* so be it. Therefore we save a memcpy().
* If we miss less than 25% bytes at the end of the temp value,
* so be it. Therefore we save a palloc()/memcpy()/pfree()
* sequence.
* ----------
*/
if
(
tmp_size
-
tmp
->
varsize
<
256
||
...
...
@@ -250,15 +255,15 @@ lztext_text(lztext *lz)
* Allocate and initialize the text result
* ----------
*/
result
=
(
text
*
)
palloc
(
lz
->
rawsize
+
VARHDRSZ
+
1
);
result
=
(
text
*
)
palloc
(
PGLZ_RAW_SIZE
(
lz
)
+
VARHDRSZ
+
1
);
VARSIZE
(
result
)
=
lz
->
rawsize
+
VARHDRSZ
;
/* ----------
* Decompress directly into the text data area.
* ----------
*/
pglz_decompress
(
lz
,
VARDATA
(
result
));
VARDATA
(
result
)[
lz
->
rawsize
]
=
0
;
pglz_decompress
(
lz
,
VARDATA
(
result
));
return
result
;
}
...
...
This diff is collapsed.
Click to expand it.
src/backend/utils/adt/pg_lzcompress.c
+
5
−
1
View file @
211ed366
/* ----------
* pg_lzcompress.c -
*
* $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.
1
1999/11/17 2
1:21:50
wieck Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.
2
1999/11/17 2
2:18:45
wieck Exp $
*
* This is an implementation of LZ compression for PostgreSQL.
* It uses a simple history table and generates 2-3 byte tags
...
...
@@ -385,6 +385,8 @@ pglz_find_match (PGLZ_HistEntry **hstart, char *input, char *end,
/* ----------
* pglz_compress -
*
* Compresses source into dest using strategy.
* ----------
*/
int
...
...
@@ -580,6 +582,8 @@ pglz_compress (char *source, int slen, PGLZ_Header *dest, PGLZ_Strategy *strateg
/* ----------
* pglz_decompress -
*
* Decompresses source into dest.
* ----------
*/
int
...
...
This diff is collapsed.
Click to expand it.
src/include/utils/pg_lzcompress.h
+
29
−
2
View file @
211ed366
/* ----------
* pg_lzcompress.h -
*
* $Header: /cvsroot/pgsql/src/include/utils/pg_lzcompress.h,v 1.
1
1999/11/17 2
1:21:51
wieck Exp $
* $Header: /cvsroot/pgsql/src/include/utils/pg_lzcompress.h,v 1.
2
1999/11/17 2
2:18:46
wieck Exp $
*
* Definitions for the builtin LZ compressor
* ----------
...
...
@@ -37,9 +37,36 @@ typedef struct PGLZ_Header {
*/
#define PGLZ_MAX_OUTPUT(_dlen) ((_dlen) + (((_dlen) | 0x07) >> 3) \
+ sizeof(PGLZ_Header))
/* ----------
* PGLZ_RAW_SIZE -
*
* Macro to determine the uncompressed data size contained
* in the entry.
* ----------
*/
#define PGLZ_RAW_SIZE(_lzdata) (_lzdata->rawsize)
/* ----------
* PGLZ_IS_COMPRESSED -
*
* Macro to determine if the data itself is stored as raw
* uncompressed data.
* ----------
*/
#define PGLZ_IS_COMPRESSED(_lzdata) (_lzdata->varsize != \
_lzdata->rawsize + sizeof(PGLZ_Header))
_lzdata->rawsize + \
sizeof(PGLZ_Header))
/* ----------
* PGLZ_RAW_DATA -
*
* Macro to get access to the plain compressed or uncompressed
* data. Useful if PGLZ_IS_COMPRESSED returns false.
* ----------
*/
#define PGLZ_RAW_DATA(_lzdata) (((char *)(_lzdata)) + \
sizeof(PGLZ_Header))
/* ----------
* PGLZ_Strategy -
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment