mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-03-02 02:06:59 +08:00
From: t-ishii@sra.co.jp Attached are patches to enhance the multi-byte support. (patches are against 7/18 snapshot) * determine encoding at initdb/createdb rather than compile time Now initdb/createdb has an option to specify the encoding. Also, I modified the syntax of CREATE DATABASE to accept encoding option. See README.mb for more details. For this purpose I have added new column "encoding" to pg_database. Also pg_attribute and pg_class are changed to catch up the modification to pg_database. Actually I haved added pg_database_mb.h, pg_attribute_mb.h and pg_class_mb.h. These are used only when MB is enabled. The reason having separate files is I couldn't find a way to use ifdef or whatever in those files. I have to admit it looks ugly. No way. * support for PGCLIENTENCODING when issuing COPY command commands/copy.c modified. * support for SQL92 syntax "SET NAMES" See gram.y. * support for LATIN2-5 * add UNICODE regression test case * new test suite for MB New directory test/mb added. * clean up source files Basic idea is to have MB's own subdirectory for easier maintenance. These are include/mb and backend/utils/mb.
50 lines
945 B
C
50 lines
945 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pg_encoding.c--
|
|
*
|
|
*
|
|
* Copyright (c) 1998, PostgreSQL development group
|
|
*
|
|
*
|
|
* IDENTIFICATION
|
|
* $Header: /cvsroot/pgsql/src/bin/pg_encoding/Attic/pg_encoding.c,v 1.1 1998/07/24 03:32:10 scrappy Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include "postgres.h"
|
|
#include "mb/pg_wchar.h"
|
|
|
|
static void usage(void);
|
|
|
|
int
|
|
main(int argc, char **argv)
|
|
{
|
|
char c;
|
|
char *p;
|
|
int rtn;
|
|
|
|
if (argc < 2) {
|
|
usage();
|
|
exit(1);
|
|
}
|
|
p = argv[1];
|
|
while((c = *p++)) {
|
|
if (c < '0' || c > '9') {
|
|
rtn = pg_char_to_encoding(argv[1]);
|
|
if (rtn >= 0) {
|
|
printf("%d\n",rtn);
|
|
}
|
|
exit(0);
|
|
}
|
|
}
|
|
printf("%s\n",pg_encoding_to_char(atoi(argv[1])));
|
|
exit(0);
|
|
}
|
|
|
|
static void usage()
|
|
{
|
|
fprintf(stderr, "pg_encoding: encoding_name | encoding_number\n");
|
|
}
|