Changeset: 392da9cd5277 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=392da9cd5277
Added Files:
buildtools/autogen/scripts/mal2h.py
monetdb5/modules/atoms/00_json_hge.mal.h
monetdb5/modules/atoms/batxml.mal.h
monetdb5/modules/atoms/blob.mal.h
monetdb5/modules/atoms/color.mal.h
monetdb5/modules/atoms/identifier.mal.h
monetdb5/modules/atoms/inet.mal.h
monetdb5/modules/atoms/json.mal.h
monetdb5/modules/atoms/mtime.mal.h
monetdb5/modules/atoms/str.mal.h
monetdb5/modules/atoms/streams.mal.h
monetdb5/modules/atoms/url.mal.h
monetdb5/modules/atoms/uuid.mal.h
monetdb5/modules/atoms/xml.mal.h
monetdb5/modules/kernel/00_aggr_hge.mal.h
monetdb5/modules/kernel/aggr.mal.h
monetdb5/modules/kernel/alarm.mal.h
monetdb5/modules/kernel/algebra.mal.h
monetdb5/modules/kernel/bat5.mal.h
monetdb5/modules/kernel/batcolor.mal.h
monetdb5/modules/kernel/batmmath.mal.h
monetdb5/modules/kernel/batstr.mal.h
monetdb5/modules/kernel/group.mal.h
monetdb5/modules/kernel/logger.mal.h
monetdb5/modules/kernel/microbenchmark.mal.h
monetdb5/modules/kernel/mmath.mal.h
monetdb5/modules/kernel/status.mal.h
monetdb5/modules/mal/00_batExtensions_hge.mal.h
monetdb5/modules/mal/00_batcalc_hge.mal.h
monetdb5/modules/mal/00_calc_hge.mal.h
monetdb5/modules/mal/00_iterator_hge.mal.h
monetdb5/modules/mal/00_language_hge.mal.h
monetdb5/modules/mal/00_mal_mapi_hge.mal.h
monetdb5/modules/mal/00_mkey_hge.mal.h
monetdb5/modules/mal/01_batcalc.mal.h
monetdb5/modules/mal/01_calc.mal.h
monetdb5/modules/mal/batExtensions.mal.h
monetdb5/modules/mal/batmtime.mal.h
monetdb5/modules/mal/bbp.mal.h
monetdb5/modules/mal/clients.mal.h
monetdb5/modules/mal/factories.mal.h
monetdb5/modules/mal/groupby.mal.h
monetdb5/modules/mal/inspect.mal.h
monetdb5/modules/mal/iterator.mal.h
monetdb5/modules/mal/json_util.mal.h
monetdb5/modules/mal/language.mal.h
monetdb5/modules/mal/mal_io.mal.h
monetdb5/modules/mal/mal_mapi.mal.h
monetdb5/modules/mal/manifold.mal.h
monetdb5/modules/mal/manual.mal.h
monetdb5/modules/mal/mat.mal.h
monetdb5/modules/mal/mdb.mal.h
monetdb5/modules/mal/mkey.mal.h
monetdb5/modules/mal/oltp.mal.h
monetdb5/modules/mal/orderidx.mal.h
monetdb5/modules/mal/pcre.mal.h
monetdb5/modules/mal/profiler.mal.h
monetdb5/modules/mal/querylog.mal.h
monetdb5/modules/mal/remote.mal.h
monetdb5/modules/mal/sabaoth.mal.h
monetdb5/modules/mal/sample.mal.h
monetdb5/modules/mal/sysmon.mal.h
monetdb5/modules/mal/tablet.mal.h
monetdb5/modules/mal/tokenizer.mal.h
monetdb5/modules/mal/transaction.mal.h
monetdb5/modules/mal/txtsim.mal.h
monetdb5/modules/mal/wlc.mal.h
monetdb5/optimizer/optimizer.mal.h
monetdb5/scheduler/run_adder.mal.h
monetdb5/scheduler/run_isolate.mal.h
monetdb5/scheduler/run_memo.mal.h
sql/backends/monet5/40_sql.mal.h
sql/backends/monet5/41_sql_hge.mal.h
sql/backends/monet5/generator/90_generator.mal.h
sql/backends/monet5/generator/90_generator_hge.mal.h
sql/backends/monet5/generator/generator.mal.h
sql/backends/monet5/generator/generator_hge.mal.h
sql/backends/monet5/sql.mal.h
sql/backends/monet5/sql_aggr_bte.mal.h
sql/backends/monet5/sql_aggr_dbl.mal.h
sql/backends/monet5/sql_aggr_flt.mal.h
sql/backends/monet5/sql_aggr_hge.mal.h
sql/backends/monet5/sql_aggr_int.mal.h
sql/backends/monet5/sql_aggr_lng.mal.h
sql/backends/monet5/sql_aggr_sht.mal.h
sql/backends/monet5/sql_decimal.mal.h
sql/backends/monet5/sql_decimal_hge.mal.h
sql/backends/monet5/sql_hge.mal.h
sql/backends/monet5/sql_inspect.mal.h
sql/backends/monet5/sql_rank.mal.h
sql/backends/monet5/sql_rank_hge.mal.h
sql/backends/monet5/sql_transaction.mal.h
sql/backends/monet5/sqlcatalog.mal.h
sql/backends/monet5/wlr.mal.h
Removed Files:
monetdb5/modules/atoms/00_json_hge.include
monetdb5/modules/atoms/batxml.include
monetdb5/modules/atoms/blob.include
monetdb5/modules/atoms/color.include
monetdb5/modules/atoms/identifier.include
monetdb5/modules/atoms/inet.include
monetdb5/modules/atoms/json.include
monetdb5/modules/atoms/mtime.include
monetdb5/modules/atoms/str.include
monetdb5/modules/atoms/streams.include
monetdb5/modules/atoms/url.include
monetdb5/modules/atoms/uuid.include
monetdb5/modules/atoms/xml.include
monetdb5/modules/kernel/00_aggr_hge.include
monetdb5/modules/kernel/aggr.include
monetdb5/modules/kernel/alarm.include
monetdb5/modules/kernel/algebra.include
monetdb5/modules/kernel/bat5.include
monetdb5/modules/kernel/batcolor.include
monetdb5/modules/kernel/batmmath.include
monetdb5/modules/kernel/batstr.include
monetdb5/modules/kernel/group.include
monetdb5/modules/kernel/logger.include
monetdb5/modules/kernel/microbenchmark.include
monetdb5/modules/kernel/mmath.include
monetdb5/modules/kernel/status.include
monetdb5/modules/mal/00_batExtensions_hge.include
monetdb5/modules/mal/00_batcalc_hge.include
monetdb5/modules/mal/00_calc_hge.include
monetdb5/modules/mal/00_iterator_hge.include
monetdb5/modules/mal/00_language_hge.include
monetdb5/modules/mal/00_mal_mapi_hge.include
monetdb5/modules/mal/00_mkey_hge.include
monetdb5/modules/mal/01_batcalc.include
monetdb5/modules/mal/01_calc.include
monetdb5/modules/mal/batExtensions.include
monetdb5/modules/mal/batmtime.include
monetdb5/modules/mal/bbp.include
monetdb5/modules/mal/clients.include
monetdb5/modules/mal/factories.include
monetdb5/modules/mal/groupby.include
monetdb5/modules/mal/inspect.include
monetdb5/modules/mal/iterator.include
monetdb5/modules/mal/json_util.include
monetdb5/modules/mal/language.include
monetdb5/modules/mal/mal_init.mal
monetdb5/modules/mal/mal_io.include
monetdb5/modules/mal/mal_mapi.include
monetdb5/modules/mal/manifold.include
monetdb5/modules/mal/manual.include
monetdb5/modules/mal/mat.include
monetdb5/modules/mal/mdb.include
monetdb5/modules/mal/mkey.include
monetdb5/modules/mal/oltp.include
monetdb5/modules/mal/orderidx.include
monetdb5/modules/mal/pcre.include
monetdb5/modules/mal/profiler.include
monetdb5/modules/mal/querylog.include
monetdb5/modules/mal/remote.include
monetdb5/modules/mal/sabaoth.include
monetdb5/modules/mal/sample.include
monetdb5/modules/mal/sysmon.include
monetdb5/modules/mal/tablet.include
monetdb5/modules/mal/tokenizer.include
monetdb5/modules/mal/transaction.include
monetdb5/modules/mal/txtsim.include
monetdb5/modules/mal/wlc.include
monetdb5/modules/prepare.sh
monetdb5/optimizer/optimizer.include
monetdb5/scheduler/run_adder.include
monetdb5/scheduler/run_isolate.include
monetdb5/scheduler/run_memo.include
sql/backends/monet5/40_sql.include
sql/backends/monet5/41_sql_hge.include
sql/backends/monet5/generator/90_generator.include
sql/backends/monet5/generator/90_generator_hge.include
sql/backends/monet5/generator/generator.include
sql/backends/monet5/generator/generator_hge.include
sql/backends/monet5/sql.include
sql/backends/monet5/sql_aggr_bte.include
sql/backends/monet5/sql_aggr_dbl.include
sql/backends/monet5/sql_aggr_flt.include
sql/backends/monet5/sql_aggr_hge.include
sql/backends/monet5/sql_aggr_int.include
sql/backends/monet5/sql_aggr_lng.include
sql/backends/monet5/sql_aggr_sht.include
sql/backends/monet5/sql_decimal.include
sql/backends/monet5/sql_decimal_hge.include
sql/backends/monet5/sql_hge.include
sql/backends/monet5/sql_inspect.include
sql/backends/monet5/sql_rank.include
sql/backends/monet5/sql_rank_hge.include
sql/backends/monet5/sql_transaction.include
sql/backends/monet5/sqlcatalog.include
sql/backends/monet5/wlr.include
Modified Files:
buildtools/autogen/scripts/sql2h.py
monetdb5/mal/Makefile.ag
monetdb5/mal/mal_embedded.c
monetdb5/mal/mal_session.c
monetdb5/modules/mal/remote.mal
monetdb5/optimizer/optimizer.mal
sql/backends/monet5/Makefile.ag
sql/backends/monet5/sql_scenario.c
tools/mserver/mserver5.c
Branch: translate-scripts
Log Message:
MAL scripts cleanup. Remove comments while translating MAL scripts into C
header files.
diffs (truncated from 52084 to 300 lines):
diff --git a/buildtools/autogen/scripts/sql2h.py
b/buildtools/autogen/scripts/mal2h.py
copy from buildtools/autogen/scripts/sql2h.py
copy to buildtools/autogen/scripts/mal2h.py
--- a/buildtools/autogen/scripts/sql2h.py
+++ b/buildtools/autogen/scripts/mal2h.py
@@ -10,8 +10,8 @@ import os
import argparse
-parser = argparse.ArgumentParser(description='Convert MonetDB SQL scripts to C
header files to be inlined')
-parser.add_argument('file', metavar='F', type=str, help='The SQL file to
convert')
+parser = argparse.ArgumentParser(description='Convert MonetDB MAL scripts to C
header files to be inlined')
+parser.add_argument('file', metavar='F', type=str, help='The MAL file to
convert')
parser.add_argument('-t', '--trim', dest='trim', action='store_true',
help='trim whitespaces')
# check arguments and veracity of the input file first
@@ -29,16 +29,16 @@ if file_stat.st_size > (1 << 29):
# get the file name and extension
base = os.path.basename(args.file)
split = os.path.splitext(base)
-if len(split) < 2 or split[1] != '.sql':
- raise Exception("Only .sql files are supported")
+if len(split) < 2 or split[1] != '.mal':
+ raise Exception("Only .mal files are supported")
filebasename = split[0]
# output file will be written on the same directory
-sql_h_output_file = open(os.path.join(os.path.dirname(args.file),
filebasename) + ".sql.h", 'w')
+mal_h_output_file = open(os.path.join(os.path.dirname(args.file),
filebasename) + split[1] + ".h", 'w')
-sql_content_file = open(args.file, 'r')
-sql_content = sql_content_file.read()
-sql_content_file.close()
+mal_content_file = open(args.file, 'r')
+mal_content = mal_content_file.read()
+mal_content_file.close()
# write the common header, plus the C array entry
insert1 = (
@@ -50,34 +50,34 @@ insert1 = (
'* Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.\n'
'*/\n'
'\n'
-'// This file was generated automatically with sql2h.py. Do not edit this file
directly.\n'
+'// This file was generated automatically with mal2h.py. Do not edit this file
directly.\n'
'{{ "{0}", "').format(filebasename)
-sql_h_output_file.write(insert1)
+mal_h_output_file.write(insert1)
-# Let's remove comments from the sql script with a Markov chain :) Bugs might
still be there
-# STATES 0 - OK, 1 in # comment, 2 in -- comment, 3 in /* comment, 4 inside '
string, 5 inside " string,
-# 6 inside whitespaces
+# Let's remove comments from the mal script with a Markov chain :) Bugs might
still be there
+# STATES 0 - OK, 1 in # comment, 2 between comment keyword and comment block,
3 inside address comment block,
+# 4 inside ' string, 5 inside " string, 6 inside whitespaces
CACHE_SIZE = file_stat.st_blksize # we will set the cache size to the
filesystem blocksize
buffer = ['\0'] * CACHE_SIZE
cur_state = 0
current_pointer = 0
i = 0
-endloop = len(sql_content) - 1
+endloop = len(mal_content) - 1
def write_to_buffer(input_c):
- global current_pointer, sql_h_output_file, buffer
+ global current_pointer, mal_h_output_file, buffer
if current_pointer == CACHE_SIZE:
- sql_h_output_file.write("".join(buffer))
+ mal_h_output_file.write("".join(buffer))
current_pointer = 0
buffer[current_pointer] = input_c
current_pointer += 1
while i < endloop:
- c = sql_content[i]
+ c = mal_content[i]
if cur_state == 1:
if c == '\n':
@@ -85,36 +85,47 @@ while i < endloop:
i += 1
continue
elif cur_state == 2:
- if c == '\n':
- cur_state = 0
+ if c == '"':
+ cur_state = 3
i += 1
continue
elif cur_state == 3:
- if c == '*' and i + 1 < endloop and sql_content[i + 1] == '/':
+ if c == '\\':
+ i += 2
+ elif c == '"':
cur_state = 0
i += 1
- i += 1
+ else:
+ i += 1
continue
elif cur_state == 4:
if c == '\\' and i + 1 < endloop:
write_to_buffer('\\')
write_to_buffer('\\')
write_to_buffer('\\')
- write_to_buffer(sql_content[i + 1])
+ write_to_buffer(mal_content[i + 1])
i += 2
+ elif c == '\n':
+ write_to_buffer('\\')
+ write_to_buffer('n')
+ i += 1
else:
if c == '\'':
cur_state = 0
write_to_buffer(c)
i += 1
continue
- elif cur_state == 5 and i + 1 < endloop:
- if c == '\\':
+ elif cur_state == 5:
+ if c == '\\' and i + 1 < endloop:
write_to_buffer('\\')
write_to_buffer('\\')
write_to_buffer('\\')
- write_to_buffer(sql_content[i + 1])
+ write_to_buffer(mal_content[i + 1])
i += 2
+ elif c == '\n':
+ write_to_buffer('\\')
+ write_to_buffer('n')
+ i += 1
else:
if c == '"':
cur_state = 0
@@ -133,19 +144,19 @@ while i < endloop:
cur_state = 1
i += 1
continue
- elif c == '-' and i + 1 < endloop and sql_content[i + 1] == '-':
- cur_state = 2
- i += 2
- continue
- elif c == '/' and i + 1 < endloop and sql_content[i + 1] == '*':
- cur_state = 3
- i += 2
- continue
elif c == '\'':
write_to_buffer(c)
cur_state = 4
i += 1
continue
+ elif c == 'c':
+ if i + 7 < endloop and mal_content[i:i+8] == 'comment ':
+ cur_state = 2
+ i += 7
+ else:
+ write_to_buffer('c')
+ i += 1
+ continue
elif c == '"':
write_to_buffer('\\')
write_to_buffer(c)
@@ -172,8 +183,8 @@ while i < endloop:
i += 1
if current_pointer > 0:
- sql_h_output_file.write("".join(buffer[:current_pointer]))
+ mal_h_output_file.write("".join(buffer[:current_pointer]))
# finish C array entry
-sql_h_output_file.write('" }}, \n'.format())
-sql_h_output_file.close()
+mal_h_output_file.write('" }}, \n'.format())
+mal_h_output_file.close()
diff --git a/buildtools/autogen/scripts/sql2h.py
b/buildtools/autogen/scripts/sql2h.py
--- a/buildtools/autogen/scripts/sql2h.py
+++ b/buildtools/autogen/scripts/sql2h.py
@@ -34,7 +34,7 @@ if len(split) < 2 or split[1] != '.sql':
filebasename = split[0]
# output file will be written on the same directory
-sql_h_output_file = open(os.path.join(os.path.dirname(args.file),
filebasename) + ".sql.h", 'w')
+sql_h_output_file = open(os.path.join(os.path.dirname(args.file),
filebasename) + split[1] + ".h", 'w')
sql_content_file = open(args.file, 'r')
sql_content = sql_content_file.read()
@@ -102,19 +102,27 @@ while i < endloop:
write_to_buffer('\\')
write_to_buffer(sql_content[i + 1])
i += 2
+ elif c == '\n':
+ write_to_buffer('\\')
+ write_to_buffer('n')
+ i += 1
else:
if c == '\'':
cur_state = 0
write_to_buffer(c)
i += 1
continue
- elif cur_state == 5 and i + 1 < endloop:
- if c == '\\':
+ elif cur_state == 5:
+ if c == '\\' and i + 1 < endloop:
write_to_buffer('\\')
write_to_buffer('\\')
write_to_buffer('\\')
write_to_buffer(sql_content[i + 1])
i += 2
+ elif c == '\n':
+ write_to_buffer('\\')
+ write_to_buffer('n')
+ i += 1
else:
if c == '"':
cur_state = 0
diff --git a/monetdb5/mal/Makefile.ag b/monetdb5/mal/Makefile.ag
--- a/monetdb5/mal/Makefile.ag
+++ b/monetdb5/mal/Makefile.ag
@@ -11,6 +11,9 @@ INCLUDES = ../../common/options \
../../gdk \
../optimizer \
../modules/mal \
+ ../modules/kernel \
+ ../modules/atoms \
+ ../scheduler \
$(openssl_CFLAGS)
MTSAFE
diff --git a/monetdb5/mal/mal_embedded.c b/monetdb5/mal/mal_embedded.c
--- a/monetdb5/mal/mal_embedded.c
+++ b/monetdb5/mal/mal_embedded.c
@@ -25,106 +25,89 @@ static struct{
{
// Include the MAL definitions files in the proper order.
-#include "../modules/mal/mdb.include"
-#include "../modules/kernel/alarm.include"
-#include "../modules/kernel/mmath.include"
-#include "../modules/atoms/streams.include"
+#include "mdb.mal.h"
+#include "alarm.mal.h"
+#include "mmath.mal.h"
+#include "streams.mal.h"
-#include "../modules/kernel/bat5.include"
-#include "../modules/mal/batExtensions.include"
-#include "../modules/kernel/algebra.include"
-#include "../modules/mal/orderidx.include"
-#include "../modules/kernel/status.include"
-#include "../modules/mal/groupby.include"
-#include "../modules/kernel/group.include"
-#include "../modules/kernel/aggr.include"
-#include "../modules/mal/mkey.include"
+#include "bat5.mal.h"
+#include "batExtensions.mal.h"
+#include "algebra.mal.h"
+#include "orderidx.mal.h"
+#include "status.mal.h"
+#include "groupby.mal.h"
+#include "group.mal.h"
+#include "aggr.mal.h"
+#include "mkey.mal.h"
-#include "../modules/atoms/blob.include"
-#include "../modules/atoms/color.include"
-#include "../modules/atoms/str.include"
-#include "../modules/atoms/url.include"
-#include "../modules/atoms/uuid.include"
-#include "../modules/atoms/json.include"
-#include "../modules/mal/json_util.include"
-#include "../modules/atoms/mtime.include"
-#include "../modules/atoms/inet.include"
-#include "../modules/atoms/identifier.include"
-#include "../modules/atoms/xml.include"
-#include "../modules/atoms/batxml.include"
+#include "blob.mal.h"
+#include "color.mal.h"
+#include "str.mal.h"
+#include "url.mal.h"
+#include "uuid.mal.h"
+#include "json.mal.h"
+#include "json_util.mal.h"
+#include "mtime.mal.h"
+#include "inet.mal.h"
+#include "identifier.mal.h"
+#include "xml.mal.h"
+#include "batxml.mal.h"
-#include "../modules/kernel/batmmath.include"
-#include "../modules/mal/batmtime.include"
-#include "../modules/kernel/batstr.include"
-#include "../modules/kernel/batcolor.include"
+#include "batmmath.mal.h"
+#include "batmtime.mal.h"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list