zendesk / maxwell

Maxwell's daemon, a mysql-to-json kafka producer
https://maxwells-daemon.io/
Other
3.95k stars 996 forks source link

Allow 'STATS_SAMPLE_PAGES=DEFAULT' in alter table #2053

Closed jasper-vandemalle closed 8 months ago

jasper-vandemalle commented 9 months ago

When trying to alter a table where STATS_SAMPLE_PAGES is set to an INTEGER_LITERAL, back to DEFAULT, the following exception is thrown:

Error parsing SQL: 'ALTER TABLE `MYTABLE` ALGORITHM=COPY, DROP FOREIGN KEY `SOME_FK`, STATS_SAMPLE_PAGES=DEFAULT'
maxwell encountered an exceptioncom.zendesk.maxwell.schema.ddl.MaxwellSQLSyntaxError: <missing INTEGER_LITERAL>
    at com.zendesk.maxwell.schema.ddl.MysqlParserListener.visitErrorNode(MysqlParserListener.java:93)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:17)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
    at com.zendesk.maxwell.schema.ddl.SchemaChange.parseSQL(SchemaChange.java:101)
    at com.zendesk.maxwell.schema.ddl.SchemaChange.parse(SchemaChange.java:115)
    at com.zendesk.maxwell.schema.AbstractSchemaStore.resolveSQL(AbstractSchemaStore.java:49)
    at com.zendesk.maxwell.schema.MysqlSchemaStore.processSQL(MysqlSchemaStore.java:102)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.processQueryEvent(BinlogConnectorReplicator.java:385)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.processQueryEvent(BinlogConnectorReplicator.java:407)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.getRow(BinlogConnectorReplicator.java:735)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.work(BinlogConnectorReplicator.java:235)
    at com.zendesk.maxwell.util.RunLoopProcess.runLoop(RunLoopProcess.java:34)
    at com.zendesk.maxwell.Maxwell.startInner(Maxwell.java:302)
    at com.zendesk.maxwell.Maxwell.start(Maxwell.java:227)
    at com.zendesk.maxwell.Maxwell.run(Maxwell.java:57)
    at com.lightspeedhq.lshk.config.change.services.MaxwellServiceImpl.lambda$start$0(MaxwellServiceImpl.java:38)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
jasper-vandemalle commented 8 months ago

@osheroff could I get some eyes on this PR? 🙏

osheroff commented 8 months ago

woof, this one just slipped by, sorry for the delay